public struct X
{
public static bool operator true(X x)
{
return true;
}
public static bool operator false(X x)
{
return false; // <= never called
}
}
class Program
{
static void Main(string[] args ) {
var x = new X();
//for (int i=0; x; i++)
//do {} while (x)
//while (x)
if (x) //fine! do not have to cast or compare with null
{
Console.WriteLine("Yeah!");
};
Console.ReadLine();
}
}
Der operator true ist 'ne feine Sache. Sobald der überschrieben ist kann man das object direkt für if, for, while und ? verwenden. Dummerweise muss man auch noch den false-Operator programmieren. Ich frage mich: wozu? Ich habe es nicht geschafft,
den false-Operator aufzurufen. if, for und while, ALLE nehmen den true-operator.
Wie schaffe ich es. mal den false-operator aufzurufen?