C # 'da iki garip operatör var:
Bu hakkı anlarsam, bu operatörler bir boole ifadesi yerine kullanmak istediğim ve bool'a örtük bir dönüşüm sağlamak istemediğim türlerde kullanılabilir.
Diyelim ki aşağıdaki bir sınıfım var:
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;
}
}
Böylece şu kodu yazabilirim:
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)
Ancak yukarıdaki tüm örnekler için yalnızca gerçek operatör çalıştırılır. Peki, C # 'daki yanlış operatör ne işe yarar?
Not: Daha fazla örnek burada , burada ve burada bulunabilir .