关于判断C#的两个string是否相等的问题?
char[]ch=newchar[]{'a','a','a'};stringa1=newstring(ch);stringa2="aaa";objectb1=a1;obj...
char[] ch = new char[] { 'a', 'a', 'a' };
string a1 = new string(ch);
string a2 = "aaa";
object b1 = a1;
object b2 = a2;
Console.WriteLine(a1 == a2);
Console.WriteLine(a1.Equals(a2));
Console.WriteLine(b1 == b2);
Console.WriteLine(b1.Equals(b2));
输出的答案是:true true false true
我知道第二条为true是因为string重写了equals方法,第四条为true是因为多态,实际调用的还是string的equals方法,但是我搞不清楚为什么第一条和第三条的答案是不一样的,能不能清楚的解释一下 展开
string a1 = new string(ch);
string a2 = "aaa";
object b1 = a1;
object b2 = a2;
Console.WriteLine(a1 == a2);
Console.WriteLine(a1.Equals(a2));
Console.WriteLine(b1 == b2);
Console.WriteLine(b1.Equals(b2));
输出的答案是:true true false true
我知道第二条为true是因为string重写了equals方法,第四条为true是因为多态,实际调用的还是string的equals方法,但是我搞不清楚为什么第一条和第三条的答案是不一样的,能不能清楚的解释一下 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询