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.
- Une solution consiste à redéfinir la structure en tant que classe.
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;
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :