Leer en inglés

Compartir a través de


Error del compilador CS0315

No se puede usar el tipo "valueType" como parámetro de tipo "T" en el tipo o el método genérico "TypeorMethod<T>". No hay ninguna conversión boxing de 'TipoDeValor' a 'TipoDeReferencia'.

Este error se produce al restringir a un tipo genérico para una clase determinada e intentar construir una instancia de esa clase mediante un tipo de valor al que no se puede aplicar la conversión boxing implícitamente.

Para corregir este error

  1. Una solución es volver a definir la estructura como clase.

Ejemplo

El ejemplo siguiente genera el error CS0315:

// cs0315.cs  
public class ClassConstraint { }  
public struct ViolateClassConstraint { }  
  
public class Gen<T> where T : ClassConstraint  
{
}  
public class Test  
{  
    public static int Main()  
    {  
        Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315  
        return 1;  
    }  
}  

Vea también