Có hai toán tử kỳ lạ trong C #:
- các nhà khai thác đúng
- các nhà điều hành sai
Nếu tôi hiểu đúng điều này, các toán tử này có thể được sử dụng trong các kiểu mà tôi muốn sử dụng thay vì biểu thức boolean và nơi tôi không muốn cung cấp một chuyển đổi ngầm định thành bool.
Giả sử tôi có một lớp học sau:
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;
}
}
Vì vậy, tôi có thể viết mã sau:
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)
Tuy nhiên, đối với tất cả các ví dụ trên chỉ có toán tử true được thực thi. Vậy toán tử false trong C # có tác dụng gì?
Lưu ý: Có thể tìm thấy nhiều ví dụ hơn ở đây , ở đây và ở đây .