На данный вопрос уже ответили: В чем суть ковариантности и контравариантности делегатов? 2 ответа Почему параметры T1, T2,... являются контрвариантными (in T1, in T2,...) в Action? И почему возвращаемый тип в Func является ковариантным (out TResult)?
Ответ
На пальцах: если вам требуется парикмахер для собак (Action
Поэтому переменной типа Action
Наоборот, если вам нужно раздобыть какое угодно животное (Func
Поэтому переменной типа Func
Более подробно: В чем суть ковариантности и контравариантности делегатов?, Контравариантность обобщенных делегатов С#
Комментариев нет:
Отправить комментарий