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