閱讀英文

共用方式為


編譯器錯誤 CS0075

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

如果您使用會識別預先定義之類型的關鍵字來將類型轉型,則不需要括弧。 否則,您必須加上括弧,因為 (x) –y 不會視為轉型運算式。 取自 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  
        }  
    }  
}  

另請參閱