Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Аргумент универсального типа для arg не может быть типом типа, он должен быть типом значения или типом дескриптора.
Замечания
Аргумент универсального типа не был правильным типом.
Дополнительные сведения см. в статье Универсальные шаблоны.
Примеры
Создать экземпляр универсального типа с собственным типом невозможно. В следующем примере генерируется ошибка C3225.
// C3225.cpp
// compile with: /clr
class A {};
ref class B {};
generic <class T>
ref class C {};
int main() {
C<A>^ c = gcnew C<A>; // C3225
C<B^>^ c2 = gcnew C<B^>; // OK
}
В следующем примере создается компонент с помощью C#. Обратите внимание, что ограничение указывает, что универсальный тип можно создать только с типом значения.
// C3225_b.cs
// compile with: /target:library
// a C# program
public class MyList<T> where T: struct {}
В этом примере используется компонент C#, и нарушается ограничение, согласно которому MyList может быть создан только с типом значения, отличным от Nullable. В следующем примере создается C3225.
// C3225_c.cpp
// compile with: /clr
#using "C3225_b.dll"
ref class A {};
value class B {};
int main() {
MyList<A> x; // C3225
MyList<B> y; // OK
}