Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0217

Aby bylo možné použít jako operátor krátkého okruhu, musí mít uživatelem definovaný logický operátor ("operátor") stejný návratový typ jako typ jeho 2 parametrů.

Pokud definujete operátor pro uživatelem definovaný typ a pak se pokusíte operátor použít jako operátor zkratu, musí mít operátor definovaný uživatelem parametry a návratové hodnoty stejného typu. Další informace o operátorech zkratek naleznete v tématu && operátor a || operátor. Další informace o uživatelem definovaných zkratkách nebo podmíněných operátorech najdete v části Uživatelem definované podmíněné logické operátory specifikace jazyka C#.

Následující ukázka vygeneruje 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;  
   }  
}  

Viz také