对于不同的数据类型,这三者有不同的结果。
1、值类型
- == :如果类型不同,先转换为统一类型,在进行值的比较。
- Equals:如果类型不同,直接返回false;否则继续比较值是否相等。
- ReferenceEquals:返回false
1 int a = 15; 2 float b = 15; 3 Console.WriteLine(a == b); //true; 4 Console.WriteLine(a.Equals(b)); //false 5 Console.WriteLine(object.ReferenceEquals(a, b)); //false
2、string
- == :进行值的比较。
- Equals:进行值的比较
- ReferenceEquals:进行引用的比较
1 string strA = new string('a', 'b'); 2 string strB = new string('a', 'b'); 3 Console.WriteLine(strA == strB); //true 4 Console.WriteLine(strA.Equals(strB)); //true 5 Console.WriteLine(object.ReferenceEquals(strA, strB)); //false
3、引用类型:
均是进行引用的比较