C# 8 新特性 - using 声明
using語(yǔ)句塊?
盡管.NET Core運(yùn)行時(shí)有垃圾收集器(GC)來負(fù)責(zé)內(nèi)存清理工作,但是我們還是要自己確保當(dāng)非托管資源不再使用的時(shí)候應(yīng)該被清理掉。以前針對(duì)實(shí)現(xiàn)了IDisposable接口的對(duì)象,我們經(jīng)常會(huì)使用using?語(yǔ)句塊來這樣做:?
?
這時(shí)候它的輸出是這樣的:?
?
這樣寫還是有一點(diǎn)麻煩的,能簡(jiǎn)單一些就好了。但是而如果不使用using語(yǔ)句的話,那資源就不會(huì)被清理:?
?
其輸出就沒有disposed那段了:?
?
using聲明?
但是從C#?8開始,我們可以使用using聲明來做這件事了,要比之前的using語(yǔ)句塊簡(jiǎn)單一些,直接看例子:?
就是在定義變量前面的地方使用using聲明。?
?
這樣做的話,在Main方法走完的時(shí)候,db這個(gè)資源是可以被清理掉的:?
可以看到db被Disposed了,但是您肯定也發(fā)現(xiàn)了不同之處:最后兩行輸出的順序發(fā)生了變化。?
?
在使用using語(yǔ)句塊的時(shí)候,清理動(dòng)作發(fā)生在using塊結(jié)束的時(shí)候:?
?
而使用using聲明以后,清理動(dòng)作會(huì)發(fā)生在超出db作用范圍的時(shí)候,也就是離開Main方法的時(shí)候:?
?
總結(jié)?
using語(yǔ)句塊和using聲明還是要結(jié)合具體情況來使用。。。?
更詳細(xì)內(nèi)容請(qǐng)點(diǎn)擊原文鏈接。
總結(jié)
以上是生活随笔為你收集整理的C# 8 新特性 - using 声明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 活动最后72小时:购书优惠劵,折后再折,
- 下一篇: C# 8 新特性 - 异步流 Async