C#中==和Equals的区别

1 值类型

==和Equals比较的内容都是一致的,都是比较内容

2 引用数据类型

2.1 除了String之外

== Equals
比较首地址是否相等 比较值是否相等

2.2 String数据类型

利用反编译工具,查看String源码,可以看到如下代码
C#中==和Equals的区别_第1张图片

从代码中可以看出,String对==也进行了重写,所以,在String类型==和Equals的功能是一致的,也是进行值的比较,所以如下代码的:
String s1 = "a";
String s2 = "a";
String s3 = new String(new char[1]{'a'});
Console.WriteLine(s1 == s2);
Console.WriteLine(s1 == s3);

这里的输出结果都一定是true

你可能感兴趣的:(C#)