Re: [問題] 有方法取得正被引用的次數?

看板C_Sharp (C#)作者 (.)時間8年前 (2017/04/13 15:41), 8年前編輯推噓1(1012)
留言13則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《lovecold (小豬頭)》之銘言: : 大家好,想請教一下,我有一個class A, : a = new A(), b = a, c = a,..... : 想請問一下,有辦法知道 new A() 被幾個引用嗎? 有一個方法 但不知道是不是你需要的 再案照你自己的需求去改 簡單的概念就是多加一層static wapper class 利用getter這裡來做ref count class ClassA { public int value_item = 0; } static public class objectGetWraper { static public object _Aclass; static public object _A { get { count++; return _Aclass; } set { _Aclass = value; } } static public int count = 0; } private void button5_Click(object sender, EventArgs e) { ClassA a_object = new ClassA(); objectGetWraper._A = a_object; ClassA bb = (ClassA)objectGetWraper._A; ClassA cc = (ClassA)objectGetWraper._A; ClassA dd = (ClassA)objectGetWraper._A; MessageBox.Show(objectGetWraper.count.ToString()); //3 } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.56.185 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1492069263.A.564.html ※ 編輯: erspicu (60.248.56.185), 04/13/2017 15:42:00

04/13 15:51, , 1F
用wrapper沒辦法控制拿出去之後又隨便亂給吧
04/13 15:51, 1F

04/13 15:54, , 2F
要規定寫程式的人用固定方式取,跟規定要去呼叫一個counter
04/13 15:54, 2F

04/13 15:55, , 3F
計數一樣,自己算的作法除非使用範圍很小不然無法維護吧
04/13 15:55, 3F

04/13 16:53, , 4F
setter跟getter都可以各自有些資源管理與計算機制
04/13 16:53, 4F

04/13 16:53, , 5F
雖然不知道原PO的目的為何..但如果真要如此
04/13 16:53, 5F

04/13 16:53, , 6F
這似乎是目前可以想到最簡單的解法
04/13 16:53, 6F

04/13 16:55, , 7F
還是要看原PO到底是要做啥...
04/13 16:55, 7F

04/13 18:59, , 8F
我猜是因為自己寫的程式指來指去,然後不知道哪些指標
04/13 18:59, 8F

04/13 18:59, , 9F
還指著,造成無法gc
04/13 18:59, 9F

04/14 19:42, , 10F
自己的程式怎麼會不知道哪些還指著..沒改掉不就永遠指著嗎?
04/14 19:42, 10F

04/14 19:44, , 11F
GC並不需要全部沒有還指著,一堆沒用到的物件互相指來指去
04/14 19:44, 11F

04/14 19:44, , 12F
也沒差,只要執行中的物件無法到達就可gc
04/14 19:44, 12F

04/14 21:33, , 13F
搞到沒辦法gc,那程式的耦合度應該也夠噁心的了...
04/14 21:33, 13F
感覺上原PO應該是臨時想到好奇一問 應該不是真的有這功能的需要 不然也不知道能夠作啥.... ※ 編輯: erspicu (61.70.88.120), 04/14/2017 22:10:48
文章代碼(AID): #1OxokFLa (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1OxokFLa (C_Sharp)