Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Compilerfehler C3225

Aktualisiert: November 2007

Fehlermeldung

Das generische Typargument für 'Argument' kann nicht 'Typ' sein, es muss ein Werttyp oder ein Handletyp sein
generic type argument for 'arg' cannot be 'type', it must be a value type or handle type

Das generische Typargument war nicht vom richtigen Typ.

Weitere Informationen finden Sie unter Generics (Visual C++).

Sie können keinen generischen Typ mit einem systemeigenen Typ instanziieren. Im folgenden Beispiel wird C3225 generiert.

// 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
}

Im folgenden Beispiel wird eine Komponente mithilfe von C# erstellt. Die Einschränkung gibt an, dass der generische Typ nur mit einem Werttyp instanziiert werden kann.

// C3225_b.cs
// compile with: /target:library
// a C# program
public class MyList<T> where T: struct {}

In diesem Beispiel wird die mit C# erstellte Komponente verwendet. Die Einschränkung, dass MyList nur mit einem Werttyp außer Nullable verwendet werden kann, wird verletzt. Im folgenden Beispiel wird C3225 generiert.

// 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
}
Anzeigen: