Baca dalam bahasa Inggris

Bagikan melalui


Kesalahan Pengompilasi CS0075

Untuk mentransmisikan nilai negatif, Anda harus mengapit nilai dalam tanda kurung

Jika Anda mentransmisikan dengan kata kunci yang mengidentifikasi jenis yang telah ditentukan sebelumnya, maka Anda tidak memerlukan tanda kurung. Jika tidak, Anda harus meletakkan tanda kurung karena (x) –y tidak akan dianggap sebagai ekspresi transmisi. Dari Spesifikasi C#, Bagian 7.6.6:

Dari aturan disambiguasi, mengikuti bahwa, jika x dan y adalah pengidentifikasi, (x)y, (x)(y), dan (x)(-y) adalah ekspresi transmisi, tetapi (x)-y bukan, bahkan jika x mengidentifikasi jenis. Namun, jika x adalah kata kunci yang mengidentifikasi jenis yang telah ditentukan sebelumnya (seperti int), keempat bentuknya adalah ekspresi transmisi (karena kata kunci seperti itu tidak mungkin menjadi ekspresi dengan sendirinya).

Kode berikut menghasilkan 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  
        }  
    }  
}  

Lihat juga