您好,登錄后才能下訂單哦!
本篇文章為大家展示了C# 中using的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
C# using作用,微軟MSDN上解釋總共有三種用途:
1、引用命名空間。2、為命名空間或類型創建別名。3、使用using語句。
1、引用命名空間,這樣就可以直接在程序中引用命名空間的類型而不必指定詳細的命名空間。
這個就不用說了吧,比如大家最常用的:usingSystem.Text;
2、為命名空間或類型創建別名:
當同一個cs引用了不同的命名空間,但這些命名控件都包括了一個相同名字的類型的時候,可以使用using關鍵字來創建別名,這樣會使代碼更簡潔。注意:并不是說兩個名字重復,給其中一個用了別名,另外一個就不需要用別名了,如果兩個都要使用,則兩個都需要用using來定義別名的。
usingSystem; usingaClass=NameSpace1.MyClass; usingbClass=NameSpace2.MyClass; ...... //使用方式 aClassmy1=newaClass(); Console.WriteLine(my1); bClassmy2=newbClass(); Console.WriteLine(my2);
3、使用using語句,定義一個范圍,在范圍結束時處理對象。(不過該對象必須實現了IDisposable接口)。其功能和try,catch,Finally完全相同。
比如:
using(SqlConnectioncn=newSqlConnection(SqlConnectionString)){......}//數據庫連接 using(SqlDataReaderdr=db.GetDataReader(sql)){......}//DataReader
PS:這里SqlConnection和SqlDataReader對象都默認實現了IDisposable接口,如果是自己寫的類,那就要自己手動來實現IDisposable接口。比如:
using(Employeeemp=newEmployee(userCode)) { ...... } Emlpoyee.cs類: publicclassEmployee:IDisposable { 實現IDisposable接口#region實現IDisposable接口 /**//// ///通過實現IDisposable接口釋放資源 /// publicvoidDispose() { Dispose(true); GC.SuppressFinalize(this); } /**//// ///釋放資源實現 /// /// protectedvirtualvoidDispose(booldisposing) { if(!m_disposed) { if(disposing) { //Releasemanagedresources if(db!=null) this.db.Dispose(); if(dt!=null) this.dt.Dispose(); this._CurrentPosition=null; this._Department=null; this._EmployeeCode=null; } //Releaseunmanagedresources m_disposed=true; } } /**//// ///析構函數 /// ~Employee() { Dispose(false); } privateboolm_disposed; #endregion }
使用using語句需要注意的幾點:
3.1、對象必須實現IDisposeable接口,這個已經說過,如果沒有實現編譯器會報錯誤。
如:
using(stringstrMsg="MyTest") { Debug.WriteLine(strMsg);//Can'tbecompiled }
3.2、第二個using對象檢查是靜態類型檢查,并不支持運行時類型檢查,因此如下形式也會出現編譯錯誤。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString);
objectobjConn=sqlConn;
using(objConn)
{
Debug .WriteLine(objConn.ToString());//Can'tbecompiled
}
不過對于后者,可以通過“as”來進行類型轉換方式來改進。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString); objectobjConn=sqlConn; using(objConnasIDisposable) { Debug.WriteLine(objConn.ToString()); }
3.3、當同時需要釋放多個資源時候,并且對象類型不同,可以這樣寫:
using(SqlConnectionsqlConn=newSqlConnection(yourConnectionString)) using(SqlCommandsqlComm=newSqlCommand(yourQueryString,sqlConn)) { sqlConn.Open();//Openconnection //OperateDBhereusing"sqlConn" sqlConn.Close();//Closeconnection }
如果對象類型相同,可以寫到一起:
using(FontMyFont=newFont("Arial",10.0f),MyFont2=newFont("Arial",10.0f)) { //useMyFontandMyFont2 }//compilerwillcallDisposeonMyFontandMyFont2
3.4、using關鍵字只是針對C#語句,對于VB等其他語言還沒有對應的功能。
上述內容就是C# 中using的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。