Es gibt zwei seltsame Operatoren in C #:
- der wahre Operator
- der falsche Operator
Wenn ich dieses Recht verstehe, können diese Operatoren in Typen verwendet werden, die ich anstelle eines booleschen Ausdrucks verwenden möchte und in denen ich keine implizite Konvertierung in bool bereitstellen möchte.
Angenommen, ich habe eine folgende Klasse:
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;
}
}
So kann ich folgenden Code schreiben:
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)
Für alle obigen Beispiele wird jedoch nur der wahre Operator ausgeführt. Wofür ist der falsche Operator in C # gut?
Hinweis: Weitere Beispiele finden Sie hier , hier und hier .