在.NET中,字符串相等的含义:字符串对象的值相同;
值相同且引用相同:a = "123"; b = "123"; a、b引用相同(a,b都在CLR的内置池中)
值相同而引用不同:a = "123"; b = "12"; b += "3"; a、b引用不同(b已经不在内置池中了)
值相同而引用不同:a = "123"; b = "12"; b += "3"; c = b; a、c不同
使引用相同:a = "123"; b = "12"; b += "3"; c = String.Intern(b); a、c相同(c又被放回内置池中了,而a,c值又相同,故a,c的引用相同)
补充:对象引用相同——(object)a == (object)b为真
另:
集合和数组具有用于访问元素数的不同的方法和特性;
集合和数组具有用于提取特定元素的不同语义;
——使用foreach可以以统一的方式遍历任何集合和数组。