日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

using IDisposable

發布時間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 using IDisposable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

using和IDisposable是組合使用的,像這種一個關鍵字和一個接口的組合,在C#中很少見的,using這個關鍵字,也就因為IDisposable多了一個身份。

其實很多人都知道IDisposable,有一個方法void Dispose(),通常是用來釋放一些必須釋放的資源時,要實現這個接口,這樣,就可以在使用using后,調起這個Dispose()。

之前,在使用using時,需要給using一個使用范圍,現在推薦不使用范圍,那接下來看看有什么區別。

實現IDisposable接口的類:

class Test : IDisposable {private readonly string _name;public Test(string name){_name = name;}public void Dispose(){WriteLine($"{_name} Dispose");}public void CallMethod_1(){WriteLine("CallMethod_1");} }

之前的用法,"1 end"在"1 Dispose"的后面,這個很好理解,因為using下面有一個{}范圍。

void?Call01() {using?(var?test?=?new?Test("1")){test.CallMethod_1();????}WriteLine("1?end"); }

現在可以使用的用法,"2 end"始終在"2 Dispose"的前面,即使我們在WiteLine("2 end")前面調用test.Dispose(),也會在Call02方法結束后再調一次Dispose。

void Call02() {using?var?test?=?new?Test("2");test.CallMethod_1();WriteLine("2 end"); }

就按開始的說法,如果Dispose是釋放一些資源,有些資源不能釋放多次,這個時候就要注意了,不能多次調用Dispose(),所以即然用了using,就不用關注Dispose()了。

總結

以上是生活随笔為你收集整理的using IDisposable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。