C# Equals()
时间: 2023-10-19 16:57:33 浏览: 37
C#中的Equals()方法用于比较两个对象的内容是否相等。在使用Equals()方法时,需要重写对象的Equals()方法,以便根据对象的特定属性进行比较。在引用的示例中,Person类的Equals()方法被重写,根据Name属性判断两个Person对象是否相等。所以在示例中,p1.Equals(p2)返回false,因为它们的Name属性不相等,而p1.Equals(p3)返回true,因为它们的Name属性相等。
另外,在引用的示例中,使用Equals()方法比较字符串对象时,它会比较字符串的内容,而不是引用。所以即使s1和s2是不同的对象,它们的内容相同,所以s1.Equals(s2)返回true。
需要注意的是,ReferenceEquals()方法用于比较两个对象的引用是否相同,即是否指向同一个对象。在示例中,p1和p2是不同的对象,所以object.ReferenceEquals(p1, p2)返回false,而p1和p3是同一个对象,所以object.ReferenceEquals(p1, p3)返回true。
因此,根据不同的场景和需求,可以选择使用Equals()方法或ReferenceEquals()方法来比较对象。
相关问题
C# Equals
在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 ]
c#equals函数
在C#中,可以使用Equals()方法来比较两个对象是否相等。Equals()方法是Object类的一个虚方法,因此所有的类都可以使用它。但是,如果没有在类中重写Equals()方法,则默认情况下,Equals()方法将比较对象的引用而不是值。因此,如果要比较两个对象的值是否相等,则需要在类中重写Equals()方法。
以下是一个重写Equals()方法的示例:
```csharp
public class MyClass
{
public int MyProperty { get; set; }
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
MyClass other = (MyClass)obj;
return MyProperty == other.MyProperty;
}
}
```
在这个示例中,我们重写了Equals()方法来比较MyClass对象的MyProperty属性的值是否相等。如果两个对象的MyProperty属性的值相等,则Equals()方法返回true,否则返回false。