Existem dois operadores estranhos em C #:
Se entendi bem, esses operadores podem ser usados em tipos que desejo usar em vez de uma expressão booleana e onde não desejo fornecer uma conversão implícita para bool.
Digamos que eu tenha uma aula a seguir:
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;
}
}
Portanto, posso escrever o seguinte código:
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)
No entanto, para todos os exemplos acima, apenas o operador verdadeiro é executado. Então, para que serve o operador falso em C #?
Nota: Mais exemplos podem ser encontrados aqui , aqui e aqui .