gpt4 book ai didi

c# - 需要重载 operator< 和 null 检查

转载 作者:可可西里 更新时间:2023-11-01 07:55:30 25 4
gpt4 key购买 nike

我在 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;
}

我没有找到任何关于此的说明。但也许我错过了什么。

最佳答案

答案取决于您的预期使用模式。如果您计划混合使用空值,并且您希望 null 值小于非空值,那么您的实现是正确的;如果您想将 null 值视为大于非 null 对象,则注释掉的返回值(falsetrue)应该被使用。如果您不打算在混合中允许空值,则抛出 ArgumentNullException 或允许 NullReferenceException 将是正确的选择。

关于c# - 需要重载 operator< 和 null 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com