请考虑C#
中的以下代码段string s = "hi";
object k="hi".Substring(0);
// 1>
k==s // true
// 2>
Object.ReferenceEquals(s,k) //true
但是什么时候,
Object k="hii".Substring(0,2);
// 1>
k==s // false
// 2>
Object.ReferenceEquals(s,k) //false
我很难理解为什么在第一种情况下,字符串是在没有发生的情况下实现的,所以在第二种情况下。 如果任何人都可以在c#中发生字符串实习时指出规则,那将非常有帮助。