Baca dalam bahasa Inggris

Bagikan melalui


Compiler Error CS0217

Agar berlaku sebagai operator korsleting, operator logis yang ditentukan pengguna ('operator') harus memiliki jenis pengembalian yang sama dengan jenis 2 parameternya.

Jika Anda mendefinisikan operator untuk jenis yang ditentukan pengguna, dan kemudian mencoba menggunakan operator sebagai operator hubungan singkat, operator yang ditentukan pengguna harus memiliki parameter dan mengembalikan nilai dari jenis yang sama. Untuk informasi selengkapnya tentang operator hubungan singkat, lihat && operator dan || operator. Untuk informasi selengkapnya tentang hubungan singkat yang ditentukan pengguna, atau kondisional, operator, lihat bagian Operator logis bersyarat yang ditentukan pengguna dari spesifikasi bahasa C#.

Sampel berikut menghasilkan CS0217:

// CS0217.cs  
using System;  
  
public class MyClass  
{  
   public static bool operator true (MyClass f)  
   {  
      return false;  
   }  
  
   public static bool operator false (MyClass f)  
   {  
      return false;  
   }  
  
   public static implicit operator int(MyClass x)  
   {  
      return 0;  
   }  
  
   public static int operator & (MyClass f1, MyClass f2)   // CS0217  
   // try the following line instead  
   // public static MyClass operator & (MyClass f1, MyClass f2)  
   {  
      return new MyClass();  
   }  
  
   public static void Main()  
   {  
      MyClass f = new MyClass();  
      int i = f && f;  
   }  
}  

Lihat juga