Lezen in het Engels

Delen via


Compilerfout CS0075

Als u een negatieve waarde wilt casten, moet u de waarde tussen haakjes insluiten

Als u cast met behulp van een trefwoord dat een vooraf gedefinieerd type identificeert, hebt u geen haakjes nodig. Anders moet u de haakjes plaatsen omdat (x) –y niet wordt beschouwd als een cast-expressie. Uit de C#-specificatie, sectie 7.6.6:

Uit de ondubbelzinnigheidsregel volgt dat, als x en y id's zijn, (x)y, (x)(y) en (x)(-y) cast-expressies zijn, maar (x)-y niet, zelfs als x een type identificeert. Als x echter een trefwoord is dat een vooraf gedefinieerd type (zoals int) identificeert, zijn alle vier formulieren cast-expressies (omdat een dergelijk trefwoord niet mogelijk zelf een expressie kan zijn).

Met de volgende code wordt CS0075 gegenereerd:

// 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  
        }  
    }  
}  

Zie ook