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了

Links booklink

Contact Us: admin [ a t ] ucptt.com