Leggere in inglese

Condividi tramite


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.

Per correggere l'errore

  1. Una soluzione consiste nel ridefinire lo struct come classe.

Esempio

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;  
    }  
}  

Vedi anche