C#语言中的“==”与“Equals()”
在C#语言中比较相等可用“==”运算符与“Equals()”方法,下面的示例代码是两个string类型相比较是否相等:
string str1 = "abc"; string str2 = "abc"; Console.WriteLine(str1 == str2); Console.WriteLine(str1.Equals(str2));
结果皆为True。Equals()方法比“==”运算符而言可比较对象的引用,当被比较的项是内存中的同一个项时返回True。
下面的示例程序是两个类,分别是 classA 、classB:
class classA { } class classB { } static void Main(string[] args) { classA a = new classA(); classB b = new classB(); Console.WriteLine(a.Equals(b)); Console.WriteLine(a.Equals(a)); Console.WriteLine(a.GetHashCode()); Console.WriteLine(b.GetHashCode()); }
结果为:
False
True
48649253
61921478