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