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.
- Una solución es volver a definir la estructura como clase.
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;
}
}
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: