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
}
}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: