Compartir a través de


Error del compilador C3225

el argumento de tipo genérico para 'argumento' no puede ser 'tipo', debe ser un tipo de valor o un tipo de identificador

El argumento de tipo genérico no era del tipo correcto.

Para más información, vea Genéricos.

Ejemplos

No se puede crear una instancia de un tipo genérico con un tipo nativo. El ejemplo siguiente genera el error 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
}

En el ejemplo siguiente, se crea un componente con C#. Observe que la restricción especifica que solo se puede crear una instancia del tipo genérico con un tipo de valor.

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

En este ejemplo, se consume el componente que crea C# y se infringe la restricción de que solo se puede crear una instancia de MyList con un tipo de valor distinto de Nullable. El ejemplo siguiente genera el error 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
}