Erreur du compilateur CS0151
Mise à jour : novembre 2007
Message d'erreur
La valeur d'un type intégral est attendue
A value of an integral type expected
Une variable a été utilisée dans une situation qui nécessitait un type de données intégral. Pour plus d'informations, consultez Types (Guide de programmation C#).
Exemple
Cette erreur peut se produire lorsqu'il n'y a aucune conversion ou si les conversions implicites disponibles ont comme résultat une situation ambiguë. L'exemple suivant génère l'erreur CS0151.
// CS0151.cs
public class MyClass
{
public static implicit operator int (MyClass aa)
{
return 0;
}
public static implicit operator long (MyClass aa)
{
return 0;
}
public static void Main()
{
MyClass a = new MyClass();
// Compiler cannot choose between int and long
switch (a) // CS0151
// try the following line instead
// switch ((int)a)
{
case 1:
break;
}
}
}
Dans Visual Studio 2008 et versions ultérieures, un appel de méthode void génère CS0151. Vous pouvez résoudre l'erreur en appelant une méthode qui retourne un type intégral tel que int ou long.
class C
{
static void Main()
{
switch (M()) // CS0151
{
default:
break;
}
}
static void M()
{
}
}