Приведение Func к Func не работает с двойным, но работает с классамиC#

Место общения программистов C#
Anonymous
Приведение Func к Func не работает с двойным, но работает с классами

Сообщение Anonymous »

У меня здесь простой вопрос о ковариантности/контравариантности.
Ниже у меня есть Func, который мне нужно привести к Func.
Теоретически это должно быть возможно, но на практике, если T2, например, имеет двойное значение, это считается ошибкой компиляции, почему?
Пример 1: это работает! (с T2 = Form)

Код: Выделить всё

public static void Conversion(Func func)
{
Func objFunc = func;
}
Пример 2: это не работает! (с T2 = double)

Код: Выделить всё

public static void Conversion(Func func)
{
Func objFunc = func;
}
Сообщение об ошибке, например 2:

ошибка CS0029: невозможно неявно преобразовать тип
'System.Func' в
'System.Func'


Подробнее здесь: https://stackoverflow.com/questions/798 ... works-with

Вернуться в «C#»