Equals與==操作符
阿新 • • 發佈:2018-11-24
==操作符
1.對於值型別,比較物件的值。
2. 對於string 以外的引用型別,比較兩個物件的地址。
3. 對於 string 型別,比較字串的值。
Object.Equals
- 對於值型別,比較物件的值。
- 對於引用型別,比較是否是對同一個物件的引用。
MSDN的說明:
https://msdn.microsoft.com/zh-cn/library/bsc2ak47(v=vs.110).aspx
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