Присвоение делегату метода с параметром обобщенного типа Т - C#

Узнай цену своей работы

Формулировка задачи:

День добрый всем, вопрос по книге Щилдта. Он пишет следующее: Ниже приведен пример контравариантного делегата.
// Объявить делегат, контравариантный по отношению к обобщенному типу Т. 
delegate bool SomeOp<in T>(T obj);
Этому делегату можно присвоить метод с параметром обобщенного типа Т или же класс, производный от типа Т. А вот пример ковариантного делегата.
// Объявить делегат, ковариантный по отношению к обобщенному типу Т. 
delegate T AnotherOp<out T, V>(V obj);
Этому делегату можно присвоить метод, возвращающий обобщенный тип Т, или же класс, производный от типа Т. В данном случае V оказывается просто параметром инвариантного типа. Хочу уточнить, нет ли здесь никакой ошибки? Может перевод не такой или еще что... Разве для контрвариантного делегата не должно быть написано что то в духе: "Этому делегату можно присвоить метод с параметром обобщенного типа Т или же класс,

базовый

для типа Т."???

Решение задачи: «Присвоение делегату метода с параметром обобщенного типа Т»

textual
Листинг программы
SomeOp<object> x = ...
SomeOp<string> y = x; // OK

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы