[問題] C# 不用指標實作Linklist

看板C_Sharp (C#)作者 (800IM)時間11年前 (2014/04/13 19:47), 11年前編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
因為動態new出的物件數量是不固定的, 所以我想用Linklist去管理所有物件,但實作 Linklist 就要分別存取 物件的位置 與 物件的實體 ref 修飾詞只有在函式參數能用,一般宣告不能,要怎麼辦? //基礎類別 abstract class Shape {//此為抽象類別,不可以實體化 public Shape Next = null; ref public Shape Next = null; //錯誤 } //實體化的類別將會繼承 Shape -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.165.185 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1397389675.A.EB0.html

04/13 20:27, , 1F
1.不用自己做輪子, 2.多半List<>就能符合你的需求
04/13 20:27, 1F

04/13 20:27, , 2F
為什麼不用 Link<>
04/13 20:27, 2F
用過了,我想自幹看看

04/13 20:29, , 3F
3. 你的 "Next" 本身就是個 reference
04/13 20:29, 3F

04/13 20:40, , 4F
4. 把"容器"跟"物品"分開來比較好
04/13 20:40, 4F

04/13 23:42, , 5F
C#裡的reference type變數其實就像指標,只是不能做指標運算
04/13 23:42, 5F

04/13 23:43, , 6F
ref是用來pass by reference,跟你的需求無關
04/13 23:43, 6F

04/14 00:23, , 7F
同意樓上,對引用類ref比較像**(指標的指標),但把複雜度
04/14 00:23, 7F

04/14 00:24, , 8F
隱藏起來了。使用方法與屬性就像指標,而賦值像指標的指標
04/14 00:24, 8F
如果是已經連結實體物件的參考,ref1 = ref2 就可以讓兩者都控制物件, 但如果ref2是空的, 先做 ref1 = ref2 再new物件給 ref1 或 ref2, ref1 和 ref2 就還是各自獨立,不能視為同一個物件的分身, 這樣要如何實做一個node呢? ※ 編輯: deo2000 (60.245.65.195), 04/14/2014 02:11:27

04/14 11:47, , 9F
Node first = new Node(), second = new Node();
04/14 11:47, 9F

04/14 11:47, , 10F
first.Next = second; 我不知道你的問題在哪?
04/14 11:47, 10F
文章代碼(AID): #1JIdbhwm (C_Sharp)
文章代碼(AID): #1JIdbhwm (C_Sharp)