Обычно получить неконструктивный универсальный тип довольно просто, используя typeof :
Type genericType = typeof( Func<> );
Я ожидал, что следующее будет также работают, но выдает ошибку компилятора Ожидаемый тип
.
Type genericNestedType = typeof( Func> );
Это относительно легко обойти, используя вместо него Func
. Однако, когда вы «потребляете» тип, вы должны помнить о вызове GetGenericTypeDefinition ()
.
Сценарий, в котором вы хотели бы «заполнить» все неназначенные параметры универсального типа, был бы невозможен. Опять же, было бы относительно легко создать фиктивный тип вместо того, чтобы указывать эти параметры. (например, Func
)
Есть ли причина, по которой typeof
не работает с вложенными универсальными неструктурированными типами?