- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
equal与==的区别
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。
对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。
对于 string 类型,== 比较字符串的值。==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.
==也就是比较引用类型是否是对同一个对象的引用。例子:
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
Console.WriteLine(a == b);
Console.WriteLine(a.Equals(b));
object g = a;
object h = b;
Console.WriteLine(g == h);
Console.WriteLine(g.Equals(h));
Person p1 = new Person("jia");
Person p2 = new Person("jia");
Console.WriteLine(p1 == p2);
Console.WriteLine(p1.Equals(p2));
Person p3 = new Person("jia");
Person p4 = p3;
Console.WriteLine(p3 == p4);
Console.WriteLine(p3.Equals(p4));
Console.ReadLine();
}
}
}[/code]- 输出
- true,true,false,true,false,false,true,true。
复制代码 [code=csharp]IPAddress ip1 = IPAddress.Parse("192.168.0.1");
IPAddress ip2 = IPAddress.Parse("192.168.0.1");
Console.WriteLine("ip1 == ip2: " + (ip1 == ip2).ToString());
Console.WriteLine("ip1.Equals(ip2): " + ip1.Equals(ip2).ToString());
输出:
ip1 == ip2: False
ip1.Equals(ip2): True [/code]
equals:比较字符串的内容是否相同,字符串为null时不能调用该方法进行比较
==:父类object中默认是比较对象的地址是否相同,在string中被重写,重新实现为比较字符串的内容是否相同,若字符串为null,也可使用==比较
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.==也就是比较引用类型是否是对同一个对象的引用。
|
|