更新:2007 年 11 月
错误消息
类型(“type”)必须包含运算符 true 和运算符 false 的声明
如果将运算符定义为用户定义的类型,然后尝试将运算符用作短路运算符,则用户定义的运算符必须定义了 true 运算符和 false 运算符。有关短路运算符的更多信息,请参见 && 运算符和 || 运算符。
下面的示例生成 CS0218:
// 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
}
}