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++引用,但它有很大的不同。 –