Teilen über


Compilerfehler C3390

'type_arg' : Ungültiges Typargument für den generischen Parameter "param" des generischen "generic_type", muss ein Verweistyp sein.

Hinweise

Ein generischer Typ wurde fehlerhaft instanziiert. Überprüfen Sie die Typdefinition.

Weitere Informationen finden Sie unter Generics.

Beispiel

Im ersten Beispiel wird C# verwendet, um eine Komponente zu erstellen, die einen generischen Typ enthält. Dieser Typ verfügt über bestimmte Einschränkungen, die beim Erstellen generischer Typen in C++/CLI nicht unterstützt werden. Weitere Informationen finden Sie unter Einschränkungen für Typparameter.

// C3390.cs
// Compile by using: csc /target:library C3390.cs
// a C# program
public class GR<C, V, N>
where C : class
where V : struct
where N : new() {}

Wenn die C3390.dll Komponente verfügbar ist, generiert das folgende Beispiel C3390.

// C3390_b.cpp
// Compile by using: cl /clr C3390_b.cpp
#using <C3390.dll>
ref class R { R(int) {} };
value class V {};
ref struct N { N() {} };

int main () {
   GR<V, V, N^>^ gr2;   // C3390 first type must be a ref type
   GR<R^, V, N^>^ gr2b; // OK - do this instead
}