C#对象比较
在C#中,是否有一种方法可以重载用户定义对象上的比较运算符,例如C#对象比较,c#,C#,在C#中,是否有一种方法可以重载用户定义对象上的比较运算符,例如=,= 类似于您如何编写“string”==“string”而不是“string”。等于(“string”) 我知道您可以定义CompareTo和Equals函数,但我想知道是否有快捷方式。您可以通过在所需的类中实现具有以下签名的函数来覆盖C中的=运算符: publicstaticbool操作符==(yourclassea,yourclasseb){} 这同样适用于操作员 通过覆盖==,您还必须覆盖=,建议重载Equals和GetH
=
,=
类似于您如何编写“string”==“string”
而不是“string”。等于(“string”)
我知道您可以定义CompareTo和Equals函数,但我想知道是否有快捷方式。您可以通过在所需的
类中实现具有以下签名的函数来覆盖C中的=
运算符:
publicstaticbool操作符==(yourclassea,yourclasseb){}
这同样适用于
操作员
通过覆盖==
,您还必须覆盖=
,建议重载Equals
和GetHashcode
函数
有关更多信息,请阅读:
简单示例:
class Foo
{
public int Id { get; set; }
public static bool operator ==(Foo first, Foo second)
{
return first.Id == second.Id;
}
public static bool operator !=(Foo first, Foo second)
{
return first.Id != second.Id;
}
}
您还应该覆盖Equals和GetHashCode仅链接的答案在堆栈溢出时被认为是不可接受的。如果您要发布内容的链接,还应解释链接、引用相关章节,或对内容进行足够的总结,以便问题完全在您的文章中得到回答,而链接只是可选的,不需要查看解决方案。@Servy谢谢!我不知道。我会弥补的!你可以随时为你的班级做准备。提议的副本的可能副本显然不是这个问题的副本;他问的是如何重载操作符,而不是它们的合理实现。