C# には 2 つの奇妙な演算子があります。
この権利を理解していれば、これらの演算子は、ブール式の代わりに使用したい型で使用でき、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 演算子は何の役に立つのでしょうか?