C#Equals方法

下面的规则概括了 Equals 方法和等号运算符 (==) 的实现指南:

每当实现 Equals 方法时都实现 GetHashCode 方法。这可以使 Equals 和 GetHashCode 保持同步。
每当实现 == 时都重写 Equals 方法,并让它们做相同的事情。这允许使用 Equals 方法的结构代码(如 Hashtable 和 ArrayList)的行为与用 == 编写的用户代码相同。
每当实现 IComparable 接口时都重写 Equals 方法。
实现 IComparable 时,应考虑实现相等 (==)、不相等 (!=)、小于 (<) 和大于 (>) 运算符的运算符重载。
不要从 Equals 或 GetHashCode 方法或相等运算符 (==) 引发异常。
有关 Equals 方法的相关信息,请参见实现 Equals 方法。

在值类型上实现相等运算符 (==)
大多数编程语言中没有用于值类型的默认相等运算符 (==) 实现。因此,任何时候只要相等有意义就应该重载 ==。

应考虑在值类型上实现 Equals 方法,这是因为 System.ValueType 的默认实现不会同时执行自定义实现。

每当重载 Equals 方法时都实现 ==。

在引用类型上实现相等运算符 (==)
大多数语言确实为引用类型提供默认的相等运算符 (==) 实现。因此,在引用类型上实现 == 时应小心。大多数引用类型(即使是实现 Equals 方法的那些)都不应该重写 ==。

如果类型是 Point、String、BigNumber 这样的基类型,则重写 ==。每当考虑重载加法 (+) 和减法 (-) 运算符时,也应该考虑重载 ==。

 
C#中,Equals是一个用于比较两个对象是否相等的方法。它返回一个bool值,如果两个对象相等,则返回true,否则返回false。你可以使用Int32.Equals()方法来比较两个整数值是否相等。 除了Int32.Equals()方法外,你还可以使用String.Equals()方法来比较两个字符串是否相等。 在String.Equals()方法中,你可以使用StringComparison.CurrentCultureIgnoreCase参数来忽略被比较字符的大小写。这种忽略大小写的比较方式可以提高效率。 如果你想查看Int32.Equals()方法的源码,你可以参考[Int32.Equals() Method]。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [c#equals方法源码_C#中的Int32.Equals()方法示例](https://blog.csdn.net/cumudi0723/article/details/107797008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [c# Equals对比忽略大小写](https://blog.csdn.net/weixin_34024034/article/details/94144290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值