C # 中有两个奇怪的操作符:
如果我理解正确的话,这些操作符可以用在我想用来代替布尔表达式的类型中,而且我不想提供一个隐式转换为布尔。
假设我有一门课:
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)
但是,对于上面的所有示例,只执行真操作符。那么 C # 中的假操作符有什么好处呢?