[問題] list<T>如何裝一個"址"

看板C_Sharp作者 (楊伯)時間15年前 (2010/08/04 22:32), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/1
之前寫c++的時後可以像下面這樣子寫 list< A* > Mylist ; 可是c#沒有指標不知道怎麼處理~"~ 我很單純的以為可以寫list< ref A > Mylist ; 不過卻出現編譯錯誤.... 請板上前輩指點一下!>< 補 我把我的需求也說明一下好了。 現在我有一個main,這個main會產生一些A的物件, 但是在產生之後 "使用之前" 要先到Manager登記,而這個Manager裡 面就要有我需要的list< A* > Mylist 來裝這些a物件的"址"。 我遇到的問題就是,當我的main要把A物件刪除之前去Manager 取消登記的時候在做list::Remove()的時候出問題(retrun false ) 因為我對c#的還不夠了解,所以我認為是址出了問題~"~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.128.56

08/04 22:45, , 1F
你要位址有什麼特殊原因嗎? 如果只是因為A是reference type
08/04 22:45, 1F

08/04 22:45, , 2F
直接 List<A> Mylist; 就好了
08/04 22:45, 2F
※ 編輯: yan04870449 來自: 122.117.128.56 (08/04 22:52)

08/04 23:22, , 3F
打開unsafe選項之後你可以利用unsafe修飾詞來使用指標
08/04 23:22, 3F

08/04 23:24, , 4F
不過A必須是一個值型別,也就是宣告為struct A而非class A
08/04 23:24, 4F

08/04 23:26, , 5F
基本上reference type的變數本來就是存值,只是使用時會自動
08/04 23:26, 5F

08/04 23:26, , 6F
幫你dereference,你的需求看起來應該用不到指標
08/04 23:26, 6F

08/04 23:27, , 7F
打錯 ↑存址
08/04 23:27, 7F

08/04 23:29, , 8F
感覺應該是你Remove的使用方法有問題
08/04 23:29, 8F
文章代碼(AID): #1CMNeCv0 (C_Sharp)