作者godman362 (青)
看板C_Sharp
標題[問題] List<T> Add Method
時間Thu Apr 8 21:20:20 2010
請教各位先進
目前我要利用link list建一顆huffman tree
我把node都丟在List的datatype中
當我從List中取出兩個node後,在new一個node和此兩個node link
當我把new出來的node加入List後
想請問一下Add這個行為,他是作Copy的動作,還是Ref的動作?
我這邊Copy的意思是說,只有Copy new出來的node進去,link的部份沒有處理
還請各位指點一下,謝謝
補一下Code的描述:
假設List裡有{node1, node2, node3, node4, node5}
Node newNode = new Node();
newNode.Left = List[0];
newNode.Reght = List[1];
List.Add(newNode);
經過上述處理後,List內容應為{node1, node2, ....., newNode}
我的意思是說,如果我操作以下動作會不會有問題
Console.WriteLine(List[6].Left.Content.ToString());
簡單來說,就是我push進去的Node,他如果有指向其他東西
在Add進去後,可否透過List的方式叫出指標所指到物件?
--
ˍˍ
活出自己 ▕吞佛▏
才是此生的快意 ▕童子▏
 ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.105.91
推 F23ko:聽不太懂你的問法。但是用ElementAt()叫出東西來時,參照型 04/08 22:07
→ F23ko:別的值會跟著改,但是結構、int那些實質型別不會一起改。 04/08 22:08
※ 編輯: godman362 來自: 140.123.214.123 (04/08 22:40)
推 F23ko:你的方法是可以的。 但是請注意,LIST[6]會讀不到東西,因為 04/08 22:56
→ F23ko:索引是從0開始 04/08 22:56
→ godman362:抱歉,是我打錯了 04/08 23:10
→ godman362:所以說,new出的Node,他所建立的link是不會有問題的嗎 04/08 23:11
→ adrianc:It depends. 實值和參考型別的 assign 行為不同 04/09 02:31
→ adrianc:用你的說法的話 實值型別會Copy 參考型別會Ref 04/09 02:32
→ adrianc:因為你的 Node 顯然是參考型別 所以回答你最後的問題 04/09 02:33
→ adrianc:可 04/09 02:33
→ godman362:謝謝兩位,這樣我明白了 04/09 17:04