== 比较的是对象的引用,这个都明白,但是微软的例子,有一个地方,不清楚,请各位朋友,
帮我看一下,感激不尽。
string a ="hello";
string b = String.copy(a);
string c ="hello";
Console.writeLine((object)a==(object)b); ===> 为什么是False 了.
对象的比较用:Equals
因为 a b 不是指向同一个引用,所以转换为 object 后用 == 比较结果当然是False.
a c 指向同一引用,因为对于常量,.net 会自动驻留字符串。所以引用是相同的。
如果在((object)a==(object)b); 之前执行 string.Intern 驻留一下,你会发现结果就是 true 了。
参考我的这篇文章
http://www.cnblogs.com/eaglet/archive/2009/05/13/1455994.html