Delen via


Compilerfout C3225

algemeen typeargument voor 'arg' mag niet 'type' zijn, het moet een waardetype of ingangstype zijn

Opmerkingen

Het algemene typeargument was niet van het juiste type.

Zie Generics voor meer informatie.

Voorbeelden

U kunt geen algemeen type instantiëren met een systeemeigen type. In het volgende voorbeeld wordt C3225 gegenereerd.

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

In het volgende voorbeeld wordt een onderdeel gemaakt met C#. U ziet dat de beperking aangeeft dat het algemene type alleen kan worden geïnstantieerd met een waardetype.

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

In dit voorbeeld wordt de component geschreven in C# gebruikt en wordt de beperking dat MyList alleen kan worden geïnstantieerd met een ander waardetype dan Nullable geschonden. In het volgende voorbeeld wordt C3225 gegenereerd.

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