string name = "bob";
object obj = name;
obj = "joe";
Console.WriteLine(name);
我对 name 将如何打印 bob 有点困惑。如果字符串和对象都是引用类型,那么在“obj = name”赋值之后,它们不应该指向堆上的同一块内存吗?感谢您的任何澄清。
编辑:StackUnderflow 的示例提出了另一个相关问题。
MyClass myClass1 = new MyClass();
MyClass myClass2;
myClass1.value = 4;
myClass2 = myClass1;
myClass2.value = 5; // myClass1 and myClass2 both have 5 for value
当两者都是类引用时会发生什么?为什么它不能以同样的方式工作,因为我可以通过一个引用更改类字段并反映在另一个引用中。类变量也应该是引用。这就是不可变的刺痛发挥作用的地方吗?