Tôi đang quá tải toán tử lessthan trong C# và tôi tự hỏi liệu điều này có cần kiểm tra null hay không. Dưới đây bạn có thể tìm thấy một ví dụ:cần quá tải toán tử <và null kiểm tra
public static bool operator <(MyClass x, MyClass y)
{
if (x == null && y == null)
{
return false;
}
if (x == null)
{
return true; //false?
}
if (y == null)
{
return false; //true?
}
return x.Value < y.Value;
}
Hoặc là điều này đúng:
public static bool operator <(MyClass x, MyClass y)
{
return x.Value < y.Value;
}
Tôi đã không hề tìm thấy bất kỳ hướng dẫn về vấn đề này. Nhưng có lẽ tôi đã bỏ lỡ điều gì đó.
Ném trẻ em "ArgumentNullException', không bao giờ ném một' NullReferenceException' có chủ định. – Dagrooms
Đó là sự khác biệt giữa "Tôi muốn làm điều này" và "oops." – Dagrooms