Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0075

Aby rzutować wartość ujemną, należy ująć wartość w nawiasy

Jeśli rzutujesz przy użyciu słowa kluczowego identyfikującego wstępnie zdefiniowany typ, nie potrzebujesz nawiasów. W przeciwnym razie należy umieścić nawiasy, ponieważ (x) –y nie zostanie uznane za wyrażenie rzutowane. Z poziomu specyfikacji języka C#, sekcja 7.6.6:

Z reguły uściślania wynika, że jeśli x i y są identyfikatorami, (x)y, (x)(y) i (x)(-y) są wyrażenia-rzutowania, ale (x)-y nie jest, nawet jeśli x identyfikuje typ. Jeśli jednak x jest słowem kluczowym identyfikującym wstępnie zdefiniowany typ (taki jak int), wszystkie cztery formularze są wyrażeniami rzutowanymi (ponieważ takie słowo kluczowe nie może być wyrażeniem samym w sobie).

Poniższy kod generuje CS0075:

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

Zobacz też