我在C#中重载了lessthan运算符,我想知道是否需要检查null。下面你可以找到一个例子:需要重载运算符<和空检查
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;
}
或者,这是正确的:
public static bool operator <(MyClass x, MyClass y)
{
return x.Value < y.Value;
}
我didn't找到关于此的任何指令。但也许我错过了一些东西。
抛出'ArgumentNullException'小孩,永远不会抛出故意的'NullReferenceException'。 – Dagrooms 2017-05-04 20:31:40
这就是“我打算这样做”和“哎呀”之间的区别。“ – Dagrooms 2017-05-04 20:31:58