Errore del compilatore CS0075

Aggiornamento: novembre 2007

Messaggio di errore

Per eseguire il cast di un valore negativo, è necessario racchiuderlo tra parentesi.
To cast a negative value, you must enclose the value in parentheses

Se si esegue il cast utilizzando una parola chiave che identifica un tipo predefinito, le parentesi non sono necessarie. In caso contrario, è necessario inserire le parentesi, altrimenti (x) –y non verrà considerata un'espressione cast. Dalla Specifica del linguaggio C#, sezione 7.6.6:

Dalla regola per la risoluzione dell'ambiguità segue che, se x e y sono identificatori, (x)y, (x)(y) e (x)(-y) saranno espressioni cast, ma non (x)-y, anche se x identifica un tipo. Tuttavia, se x è una parola chiave che identifica un tipo predefinito, ad esempio int, tutte e quattro le forme sono espressioni cast, poiché una parola chiave di questo tipo non può costituire da sola un'espressione.

Il seguente codice di esempio genera l'errore CS0075:

// CS0075
namespace MyNamespace
{
    enum MyEnum { }
    public class MyClass
    {
        public static void Main()
        {
            // To fix the error, place the negative
            // values below in parentheses
            int i = (System.Int32) - 4; //CS0075
            MyEnum e = (MyEnum) - 1;    //CS0075
            System.Console.WriteLine(i); //to avoid warning
            System.Console.WriteLine(e); //to avoid warning
        }
    }
}

Vedere anche

Riferimenti

Casting e conversioni di tipi (Guida per programmatori C#)