使用英语阅读

通过


编译器错误 CS0218

类型(“type”)必须包含运算符 true 和运算符 false 的声明

如果用户定义类型重载 & 运算符| 运算符,则它还必须定义 true 和 false 运算符,从而定义短路 &&运算符|| 运算符

以下示例生成 CS0218:

C#
// CS0218.cs  
using System;  
public class MyClass  
{  
   // uncomment these operator declarations to resolve this CS0218  
   /*  
   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 MyClass operator & (MyClass f1, MyClass f2)  
   {  
      return new MyClass();  
   }  
  
   public static void Main()  
   {  
      MyClass f = new MyClass();  
      int i = f && f;   // CS0218, requires operators true and false  
   }  
}  

另请参阅