PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_Sharp
Re: [問題] 有關using
作者:
neo5277
(I am an agent of chaos)
2016-02-05 21:35:05
當你使用 NEW 建立一個物件 會使電腦自動配置一個記憶體給它
理論上當你不要用的時候 .net會有一個機制 GC GABEGE COLLECTION
做資源回收這樣,就是過一段時間(有人實測但是我是沒測過)
只要new完,用完。程式運行中,他又沒有使用到。就會被抓去投胎了
通常一個物件不用,我們會手動的把它。Dispose掉
就像倚天屠龍記的華山派專治性飢渴跟投錯胎。
可是這種例行作業,每次都要做很麻煩又很討厭。於是乎聰(ㄌㄢˇ)明(ㄉㄨㄛˋ)的M$
PG大神們就發明一個手段讓他可以自我了斷。或是說過河拆橋? 或是說...
算了我好多廢話。
而使用USING 就上一篇推文的一樣
你可以把它當作一種特殊的召喚方法
使用using 召喚出來的物件,都具有一個特異功能,就是當他在using區塊
裡工作完後他就會塵歸塵土歸土了。
你可以用流程控制加上MSG.BOX就可以來檢查看看
大概就是這樣 ~~
作者:
ssccg
(23)
2016-02-05 21:37:00
通常一個物件不用,我們不會手動把他dispose掉...是會用到外部資源的如db connection/socket/file才會純佔memory的物件不用,只要沒reference就放著等它被GCdispose也只是釋放外部資源,之後就跟普通物件一樣佔用記憶體直到被GC
作者:
Litfal
(Litfal)
2016-02-06 01:59:00
其實會去實作IDisposable,就代表它佔用了什麼資源,可以的話我還是會用using去包或Dispose()
作者: yeo1987 (Archie)
2016-02-06 15:21:00
有興趣可以去翻Reference Source,看有實作IDisposable的物件是在處理什麼,了解Unmanaged資源、GC、Finalizer就OK了
繼續閱讀
[問題] 有關using
mitm
javaScript 的array 如何在.cs 宣告傳遞
sqrt1089
[問題] 多執行緒效率
ozone
[問題] byte陣列轉指標問題
jway1022
[問題] .net MVC web api之android的session ?
sing10407
[問題] new EventHandler需要dispose嗎?
testPtt
[問題] 跨執行緒更新UI的問題
sd016808
[問題] asp.net能做到不用fileupload上傳嗎?
justlike5566
[問題] C# 寫入Excel檔案Office驗證有問題
DJYA
[問題] 如何下載網頁中按鈕內的超連結資料?
iFISHING
Links
booklink
Contact Us: admin [ a t ] ucptt.com