C# не поддерживает тип возвращаемого ковариации, по крайней мере, в C# 6. Это very commonly requested feature на Рослин GitHub, и задолго до того, как Рослин даже существовала.
Эрик Липперт написал в своем answer:
Функция не реализована, потому что здесь никто никогда не реализовали. Необходимым, но недостаточным требованием является то, что преимущества функции превышают ее затраты.
Расходы значительны. Функция не поддерживается из-за среды выполнения, она напрямую работает против нашей цели сделать C# версией, потому что она представляет еще одну форму проблемы хрупкого базового класса.
Итак, откиньтесь на спинку сиденья, прижмитесь и скрестите пальцы на C# 7/8/9. Но не слишком сильно рассчитывайте на свои надежды - как сказано, это недорогая низкоэффективная функция, которая, скорее всего, потребует изменений в CLR.
На данный момент взгляните на Christos' answer.
Простой ответ: «вы не можете». –