Errore del compilatore CS0151
Aggiornamento: novembre 2007
Messaggio di errore
È previsto un valore di tipo integrale.
A value of an integral type expected
È stata utilizzata una variabile in una situazione in cui era richiesto un tipo di dati integrale. Per ulteriori informazioni, vedere la classe Tipi (Guida per programmatori C#).
Esempio
Questo errore può verificarsi quando non è disponibile alcuna conversione o se le conversioni implicite disponibili generano una situazione ambigua. Il seguente codice di esempio genera l'errore 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;
}
}
}
In Visual Studio 2008 and later, a void method invocation generates CS0151. You can fix the error by calling a method that returns an integral type such as int or long.
class C
{
static void Main()
{
switch (M()) // CS0151
{
default:
break;
}
}
static void M()
{
}
}