首页 新闻 赞助 找找看

== 比较

0
悬赏园豆:10 [已关闭问题]

== 比较的是对象的引用,这个都明白,但是微软的例子,有一个地方,不清楚,请各位朋友,

 帮我看一下,感激不尽。

  string a ="hello";

string b = String.copy(a);

 string c ="hello";

Console.writeLine((object)a==(object)b); ===> 为什么是False 了.

文杰的主页 文杰 | 初学一级 | 园豆:180
提问于:2009-07-21 08:46
< >
分享
其他回答(1)
0

对象的比较用:Equals

云天 | 园豆:230 (菜鸟二级) | 2009-07-21 09:02
0

因为 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

eaglet | 园豆:17139 (专家六级) | 2009-07-21 11:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册