这是因为编译器比较聪明,把它们(都是常量)优化到数据区的同一个字符串。
要观察ReferenceEqual,你可以欺骗编译器:
int i = (int)'c';
string a = "abc";
string b = "ab" + (char)i; // 还是abc,但已经是另一个对象了。
要观察ReferenceEqual,你可以欺骗编译器:
int i = (int)'c';
string a = "abc";
string b = "ab" + (char)i; // 还是abc,但已经是另一个对象了。
另外,对于我的代码中的出现的现象,.net中术语叫啥 ?想回头补上。