string name = "bob";
object obj = name;
obj = "joe";
Console.WriteLine(name);
我对名字的打印方式有些困惑。如果字符串和对象都是引用类型,它们不应该在“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
当两者都是类引用时会发生什么?为什么它不会以同样的方式工作,因为我可以通过一个引用更改一个类字段,并将其反映在另一个引用中。类变量也应该是引用。那是不可改变的伤疤吗?
你有一个C++的背景? – Marlon
我很久以前做过。我想那是我感到困惑的地方? – user943870
@ user943870也许 - 很多C++人看到“引用”,认为“引用类型”的含义类似于C++引用,但它有很大的不同。 –