컴파일러 오류 C3225
'arg'에 대한 제네릭 형식 인수는 'type'일 수 없으며 값 형식 또는 핸들 형식이어야 합니다.
제네릭 형식 인수가 올바른 형식이 아닙니다.
자세한 내용은 제네릭을 참조하세요.
예제
네이티브 형식을 사용하여 제네릭 형식을 인스턴스화할 수 없습니다. 다음 샘플에서는 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
}