首页 > 代码库 > C# Equals

C# Equals

C# Equals

1、Object.Equals()

  The type of comparison between the current instance and the obj parameter depends on whether the current instance is a reference type or a value type. 

  If the current instance is a reference type, the Equals(Object) method tests for reference equality, and a call to the Equals(Object) method is equivalent to a call to the ReferenceEquals method. Reference equality means that the object variables that are compared refer to the same object.

using System;// Define a reference type that does not override Equals.public class Person{   private string personName;   public Person(string name)   {      this.personName = name;   }   public override string ToString()   {      return this.personName;   }}public class Example{   public static void Main()   {      Person person1a = new Person("John");      Person person1b = person1a;      Person person2 = new Person(person1a.ToString());      Console.WriteLine("Calling Equals:");       Console.WriteLine("person1a and person1b: {0}", person1a.Equals(person1b));                     Console.WriteLine("person1a and person2: {0}", person1a.Equals(person2));        Console.WriteLine("\nCasting to an Object and calling Equals:");      Console.WriteLine("person1a and person1b: {0}", ((object) person1a).Equals((object) person1b));      Console.WriteLine("person1a and person2: {0}", ((object) person1a).Equals((object) person2));    }}// The example displays the following output://       person1a and person1b: True//       person1a and person2: False//       //       Casting to an Object and calling Equals://       person1a and person1b: True//       person1a and person2: False
View Code

 

2、ValueType.Equals()

  比较两个值是否相等。

参考:

1、http://msdn.microsoft.com/zh-cn/library/bsc2ak47(v=vs.110).aspx

2、http://msdn.microsoft.com/zh-cn/library/2dts52z7(v=vs.110).aspx