Sdílet prostřednictvím


Compilerfehler CS0075

Aktualisiert: November 2007

Fehlermeldung

Negative Werte müssen in runde Klammern gesetzt werden, um umgewandelt zu werden.
To cast a negative value, you must enclose the value in parentheses

Wenn zum Umwandeln ein Schlüsselwort verwendet wird, das einen vordefinierten Typ bezeichnet, sind keine Klammern erforderlich. Andernfalls müssen Sie die Klammern eingeben, da (x) –y nicht als Typumwandlungsausdruck angesehen wird. Aus der C#-Spezifikation, Abschnitt 7.6.6:

Entsprechend der Disambiguierungsregel sind (x)y, (x)(y) und (x)(-y) Typumwandlungsausdrücke, wenn x und y Bezeichner sind; (x)-y ist aber kein Typumwandlungsausdruck, selbst wenn x einen Typ bezeichnet. Wenn jedoch x ein Schlüsselwort ist, das einen vordefinierten Typ bezeichnet (z. B. int), handelt es sich bei allen vier Formen um Typumwandlungsausdrücke (weil ein solches Schlüsselwort an sich keinen Ausdruck bilden kann).

Der Fehler CS0075 wird durch folgenden Code generiert:

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

Siehe auch

Referenz

Umwandlung und Typkonvertierungen (C#-Programmierhandbuch)