Ada dua operator aneh di C #:
- yang Operator benar
- yang Operator palsu
Jika saya memahami hak ini, operator ini dapat digunakan dalam tipe yang ingin saya gunakan sebagai pengganti ekspresi boolean dan di mana saya tidak ingin memberikan konversi implisit ke bool.
Katakanlah saya memiliki kelas berikut:
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;
}
}
Jadi saya bisa menulis kode berikut:
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)
Namun untuk semua contoh di atas, hanya operator yang benar yang dijalankan. Jadi, untuk apa operator palsu di C #?
Catatan: Contoh lainnya dapat ditemukan di sini , di sini dan di sini .