Хотя я понимаю концепции, я не знаю, полностью ли я понимаю ваш вопрос.А именно, звучит так, как будто вы говорите, что производные классы должны иметь возможность реализовывать переопределения методов, которые используют параметры, которые являются «менее» производными.Это кажется мне задом наперед.Кажется, что переопределяющий метод должен иметь возможность использовать только «больше» производных типов.Может быть, это то, что вы имели в виду, или, может быть, я ошибаюсь по этому поводу, но вот цитата того, что C # 4.0 позволяет:
(взято из http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx)
Что такое дисперсия для универсального типаПараметры? Это новая функция в C # 4.0. Теперь, при создании универсального интерфейса, вы можете указать, существует ли неявное преобразование между экземплярами интерфейса, которые имеют аргументы другого типа. Например, вы можете использовать экземпляр интерфейса, который имеет методы сбольше производных типов возвращаемых данных, чем было задано изначально (ковариация) или которые имеют методы с менее производными типами параметров (контравариантность). Те же правила применяются к универсальным делегатам.