Эта функция называется ковариацией возвращаемого типа. C# не поддерживает его по следующим причинам:
1) CLR не поддерживает его. Чтобы заставить его работать на C#, нам нужно просто наплевать целую кучу маленьких вспомогательных методов, которые будут отличать правильный тип возвращаемого значения. Ничто не мешает вам сделать это самостоятельно.
2) Андерс считает, что ковариация возвращаемого типа не является хорошей языковой функцией.
3) \ У нас есть много высших приоритетов для языка. У нас ограниченные бюджеты, поэтому мы стараемся делать только самые лучшие функции, которые могут быть доступны в любом выпуске. Конечно, это было бы неплохо, но достаточно легко сделать это самостоятельно, если захочешь. Лучше, чтобы мы тратили время на добавление функций, которые улучшают опыт разработчика или добавляют больше репрезентативной власти на язык.
достаточно справедливо :), спасибо за ответ. –
Знаете ли вы, есть ли какая-либо дополнительная информация о №2? Мне нравится читать о таких языковых проблемах. :) –
Ответ Брайана Гидеона на этот вопрос дает пример того, как сделать # 1. –