Lire en anglais

Partager via


Erreur du compilateur CS0315

Le type ’valueType’ ne peut pas être utilisé comme paramètre de type ’T’ dans le type générique ou la méthode ’TypeorMethod<T>’. Aucune conversion boxing de 'valueType'en 'referenceType' n’a lieu.

Cette erreur se produit quand vous limitez un type générique à une classe particulière et que vous tentez de construire une instance de cette classe à l’aide d’un type de valeur qui ne peut pas être converti implicitement en celui-ci.

Pour corriger cette erreur

  1. Une solution consiste à redéfinir la structure en tant que classe.

Exemple

L’exemple suivant génère l’erreur 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;  
    }  
}  

Voir aussi