Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per eseguire il cast di un valore negativo, è necessario racchiuderlo tra parentesi
Se si esegue il cast usando 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, perché una parola chiave di questo tipo non può costituire da sola un'espressione.
Il codice seguente 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
}
}
}