CS0315 de erro do compilador
Mensagem de erro
O tipo 'valueType' não pode ser usado sistema autônomo parâmetro de tipo ' t ' no tipo genérico ou método 'TypeorMethod <t>'.Não há nenhuma conversão boxing de 'valueType' para 'referenceType'.
Este erro ocorre quando você restringir um tipo genérico a uma determinada classe e tentar construir uma instância dessa classe usando um tipo de valor implicitamente ser in a box não é possível a ele.
Para corrigir este erro
- Uma solução é redefinir a estrutura sistema autônomo uma classe.
Exemplo
O exemplo a seguir gera 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;
}
}