Errore del compilatore CS0315
Non è possibile usare il tipo 'valueType' come parametro di tipo 'T' nel metodo o nel tipo generico 'TypeorMethod<T>’. Non esistono conversioni boxing da 'valueType' a 'referenceType'.
Questo errore si verifica quando si vincola un tipo generico a una determinata classe e si tenta di costruire un'istanza di quella classe usando un tipo che non può essere convertito in esso tramite boxing.
- Una soluzione consiste nel ridefinire lo struct come classe.
L'esempio seguente genera l'errore 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;
}
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: