C#中有两个奇怪的操作符:
如果我理解正确,这些操作符可以在我想要使用类型而不是布尔表达式,并且我不想提供到bool的隐式转换的情况下使用。
假设我有以下类:
public class MyType
{
public readonly int Value;
public MyType(int value)
{
Value = value;
}
public static bool operator true (MyType mt)
{
return mt.Value > 0;
}
public static bool operator false (MyType mt)
{
return mt.Value < 0;
}
}
所以我可以编写以下代码:
MyType mTrue = new MyType(100);
MyType mFalse = new MyType(-100);
MyType mDontKnow = new MyType(0);
if (mTrue)
{
// Do something.
}
while (mFalse)
{
// Do something else.
}
do
{
// Another code comes here.
} while (mDontKnow)
然而,在上述所有示例中,只有true运算符被执行。那么C#中的false运算符有什么作用呢?