【发布时间】:2012-03-20 17:27:40
【问题描述】:
== 和Equals() 有什么区别?我知道==用于比较运算符,Equals()方法用于比较字符串的内容。所以我尝试了
// first example
string s1 = "a";
string s2 = "a";
Console.Write(a.Equals(s2)); // returns true, but if I assign "b" to s2,
// then result will be false
// second example
string s1 ="a";
string s2 ="a";
Console.Write(s1 == s2); // returns true
这是怎么回事?两者都是不同的对象引用。假设我们认为这些是参考。但是我尝试这样使用
string s1 = new string("ab");
string s2 = new string("ab");
我收到无法将字符串转换为字符的编译时错误
【问题讨论】:
-
Equals()方法不只是用来比较一个字符串的内容,它可以用来比较any两个对象。 C# 中的
string类型碰巧 包含Equals()的覆盖方法,该方法将比较它们的值(这一事实在许多文章中解释得很差,这些文章表明Equals()用于字符串仅供比较)。
标签: c# string equals equals-operator