typeof выдает исключение «Ожидаемый тип» для неструктурированного вложенного универсального типа

Обычно получить неконструктивный универсальный тип довольно просто, используя typeof :

Type genericType = typeof( Func<> );

Я ожидал, что следующее будет также работают, но выдает ошибку компилятора Ожидаемый тип .

Type genericNestedType = typeof( Func> );

Это относительно легко обойти, используя вместо него Func > . Однако, когда вы «потребляете» тип, вы должны помнить о вызове GetGenericTypeDefinition () .

Сценарий, в котором вы хотели бы «заполнить» все неназначенные параметры универсального типа, был бы невозможен. Опять же, было бы относительно легко создать фиктивный тип вместо того, чтобы указывать эти параметры. (например, Func > )

Есть ли причина, по которой typeof не работает с вложенными универсальными неструктурированными типами?

6
задан Steven Jeuris 4 November 2011 в 19:25
поделиться