Некоторые специальные типы CLI из библиотеки mscorlib (ArgIterator
, TypedReference
и RuntimeArgumentHandle
) не могут использоваться в качестве параметров типового типа для создания общих типов/методов:
void Foo<T>() { }
void Bar() { Foo<ArgIterator>(); }
предоставляет ошибку компилятора:
error CS0306: The type 'System.ArgIterator' may not be used as a type argument
Но это не документировано вообще в спецификации С#.
Являются ли эти типы частью спецификации CLI или эти типы, предоставляемые реализацией CLR, и описанное выше поведение не должно быть документировано в спецификации С#?