Re: [問題] =Nothing

看板C_Sharp (C#)作者 (tomex_ou)時間20年前 (2005/08/20 22:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《virdust2003 (替機殼洗個熱水澡)》之銘言: : function T() : { : frmDialog f = new frmDialog(); : f.ShowDialog(); : f=null; : } : 對於 f=null 這行有必要嗎? : 執行完T之後 f 的位址不就自動被清除了,也就沒有 東西 指到 new frmDialog()啦~ 這理由跟c++中,刪除記憶體後,要不要把指標設為NULL呢? delete *ptr; ptr = NULL; 設為null的好處,在於下面的code不容易若不小心用到ptr同名稱 而造成的bug不會漫天飛揚,死當!! (存取到違法的地方) 所以,把指標設為null是一種c++好習慣啦! 至於c#,只要ref變數超過其scope,就自動被mark入gc且不可視 所以不需要啥都設為null! 而且c#的大物件都會支援dispose等close()方式 來回收資源,而這動作也常常就把ref設為null了! 最重要的是,c#已把指標拿掉了,不小心讀取違法記憶體已不見 因此我覺得是不需要設為null了! 除了很重要的物件可設null來讓自己清楚不會用錯! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.52.211 ※ 編輯: tomex 來自: 140.119.52.211 (08/20 22:52)
文章代碼(AID): #131q5BIu (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
0
1
完整討論串 (本文為第 2 之 3 篇):
0
1
文章代碼(AID): #131q5BIu (C_Sharp)