Compartir a través de


Error del compilador CS0450

Actualización: noviembre 2007

Mensaje de error

'Nombre de parámetro de tipo': no se pueden especificar una clase de restricción y la restricción 'class' o 'struct'
'Type Parameter Name': cannot specify both a constraint class and the 'class' or 'struct' constraint

Si el parámetro de tipo está restringido por la restricción de tipo de estructura, lógicamente resulta contradictorio que también esté restringido por un tipo de clase determinado, puesto que estructuras y clases son categorías mutuamente excluyentes. Si un parámetro de tipo está restringido por una restricción de tipo de clase específica, por definición está restringido por la restricción de tipo de clase; por tanto, utilizar dicha restricción sería redundante.

Ejemplo

// CS0450.cs
// compile with: /t:library
public class GenericsErrors 
{
    public class B { }
    public class G3<T> where T : struct, B { } // CS0450
// To resolve, use the following line instead:
// public class G3<T> where T : B { }
}