C#中using的使用方式詳解
C#中 using 關(guān)鍵字主要有以下幾種方式。
1. 引入命名空間
例如:using System,幾乎每個(gè)類中都會(huì)用到。
2.為引入的命名空間起別名
using + 別名 = 包括詳細(xì)命名空間信息的具體的類型
using aClass = NameSpace1.MyClass; using bClass = NameSpace2.MyClass;<br>
優(yōu)點(diǎn):當(dāng)同一個(gè)cs引用了兩個(gè)不同的命名空間,但兩個(gè)命名空間都包括了一個(gè)相同名字的類型的時(shí)候。當(dāng)需要用到這個(gè)類型的時(shí)候,就每個(gè)地方都要用詳細(xì)命名空間的辦法來區(qū)分這些相同名字的類型。而用別名的方法會(huì)更簡(jiǎn)潔,用到哪個(gè)類就給哪個(gè)類做別名聲明就可以了。注意:并不是說兩個(gè)名字重復(fù),給其中一個(gè)用了別名,另外一個(gè)就不需要用別名了,如果兩個(gè)都要使用,則兩個(gè)都需要用using來定義別名的。
3.自動(dòng)釋放創(chuàng)建的對(duì)象
作用:
1. 自動(dòng)釋放非托管資源,避免緩存,內(nèi)存溢出,允許程序員指定使用資源的對(duì)象應(yīng)當(dāng)何時(shí)釋放資源。
2.簡(jiǎn)化try catch 得到在此定義域內(nèi)自動(dòng)釋放所新建的對(duì)象,以簡(jiǎn)化代碼;
本質(zhì):在程序編譯階段,編譯器會(huì)自動(dòng)將using語句生成為try-finally語句,并在finally塊中調(diào)用對(duì)象的Dispose方法,來清理資源。所以,using語句等效于try-finally語句。
Font f2 = new Font("Arial", 10, FontStyle.Bold); try { } finally { if (f2 != null) ((IDisposable)f2).Dispose(); }
注意事項(xiàng):
1. 括號(hào)內(nèi)使用的對(duì)象必須實(shí)現(xiàn) IDisposable 接口。此接口提供了 Dispose 方法,該方法將釋放此對(duì)象的資源。禁止為不支持IDisposable接口的類型使用using語句,否則會(huì)出現(xiàn)編譯錯(cuò)誤。
using (MemoryStream ms = new MemoryStream()) { qrCodeImage.Save(ms, ImageFormat.Jpeg); returnImageData = ms.GetBuffer(); ms.Close(); }
2.using語句適用于清理單個(gè)非托管資源的情況,而多個(gè)非托管對(duì)象的清理最好以try-finnaly來實(shí)現(xiàn),因?yàn)榍短椎膗sing語句可能存在隱藏的Bug。內(nèi)層using塊引發(fā)異常時(shí),將不能釋放外層using塊的對(duì)象資源。
3.using語句支持初始化多個(gè)變量,但前提是這些變量的類型必須相同,例如:
using(Pen p1 = new Pen(Brushes.Black), p2 = new Pen(Brushes.Blue)) { }
4.針對(duì)初始化對(duì)個(gè)不同類型的變量時(shí),可以都聲明為IDisposable類型
using (IDisposable font = new Font("Verdana", 12), pen = new Pen(Brushes.Black)) { float size = (font as Font).Size; Brush brush = (pen as Pen).Brush; }
人生如逆旅我亦是行人
到此這篇關(guān)于C#中using的使用方式的文章就介紹到這了,更多相關(guān)C#中using的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Win10 系統(tǒng)下VisualStudio2019 配置點(diǎn)云庫(kù) PCL1.11.0的圖文教程
這篇文章主要介紹了Win10 系統(tǒng)下VisualStudio2019 配置點(diǎn)云庫(kù) PCL1.11.0的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07C# 使用Free Spire.Presentation 實(shí)現(xiàn)對(duì)PPT插入、編輯、刪除表格
小編發(fā)現(xiàn)使用.NET組件——Free Spire.Presentation,在C#中添加該產(chǎn)品DLL文件,可以簡(jiǎn)單快速地實(shí)現(xiàn)對(duì)演示文稿的表格插入、編輯和刪除等操作,具體實(shí)現(xiàn)代碼大家參考下本文吧2017-09-09C#中同步和異步回調(diào)的實(shí)現(xiàn)
在C#中,同步回調(diào)和異步回調(diào)都是用于處理任務(wù)或事件完成的機(jī)制,本文主要介紹了C#中同步和異步回調(diào)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04C#與js實(shí)現(xiàn)去除textbox文本框里面重復(fù)記錄的方法
這篇文章主要介紹了C#與js實(shí)現(xiàn)去除textbox文本框里面重復(fù)記錄的方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08