问题:
string s1="abc";
string s2="abc";
此时s1与s2指向不同的空间,但为什么system.object.equals(s1,s2)的值会为true?
system.object的equals方法不是比较两个对象的所引用的实例是否相同的吗?
网友精彩回答:
发表者:bluedog(身正方能顶天立地,心和才可容士纳物。)
当然是一样的。因为.net有一个字符串池机制,相同的字符串其指向是相同的。
字符串在比较时,第一个判断是不是相同的引用,因为它们指向字符串池中同一个地址,
当然相同。你如果不信的话可以用reflector看看其源码