我有一個類Simple
,它包含一個整數,number
。 使用此代碼:取消對對象的所有引用
Simple b = new Simple();
List<Simple> list = new List<Simple>();
list.Add(b);
b.number = 6;
b = null;
Debug.WriteLine("The value of b is " + b);
Debug.WriteLine("And the value of the clown in the list is " + list[0].number);
的(1)調試返回The value of b is
和And the value of the clown in the list is 6
。
我可以假設通過將b
添加到list
,然後存儲對b
的引用。然後,通過取消b
,list
仍然包含對該對象的引用,它是b
,因此可以打印出number
的值。
但是,如果我可以更改b
的成員,並且已將該參考反映在列表中,那麼b = null
爲什麼不反映list[0]
的值?我只能假設這與價值和參考有關。
幫助任何人?
這不是一個真正的問題;這只是參考如何工作的一個例證。 b和列表條目是對象的引用。更改參考不會更改對象;只有改變引用的對象才能改變對象。 – antlersoft
您是否嘗試過更改'b'的成員以查看會發生什麼? –
@ Fls'Zen - 不是'b.number = 6;'改變成員? – riktor