共用方式為


編譯器錯誤 CS0075

更新:2007 年 11 月

錯誤訊息

要做轉型的負值必須置於括號之內

如果您使用識別為預先定義型別的關鍵字進行轉型,則不需要括號。否則必須放入括號,因為 (x) -y 將不會被視為 cast 運算式。從 C# 規格的第 7.6.6 節︰

「從這些去除混淆規則的執行結果,我們可知道如果 x 和 y 是識別碼,(x)y、(x)(y) 和 (x)(-y) 就會是轉型運算式,但是 (x)-y 則不是,即使 x 可識別為一個型別。但是,如果 x 是辨識為預先定義型別 (例如,int) 的關鍵字時,那麼四種形式都是轉型運算式 (因為這類關鍵字本身不可能會是一個運算式)。」

下列程式碼會產生 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
        }
    }
}

請參閱

參考

轉型和型別轉換 (C# 程式設計手冊)