本篇文章為大家展示了C# 中using的作用是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司專注于饒河網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供饒河營銷型網(wǎng)站建設(shè),饒河網(wǎng)站制作、饒河網(wǎng)頁設(shè)計(jì)、饒河網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造饒河網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供饒河網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
C# using作用,微軟MSDN上解釋總共有三種用途:
1、引用命名空間。2、為命名空間或類型創(chuàng)建別名。3、使用using語句。
1、引用命名空間,這樣就可以直接在程序中引用命名空間的類型而不必指定詳細(xì)的命名空間。
這個(gè)就不用說了吧,比如大家最常用的:usingSystem.Text;
2、為命名空間或類型創(chuàng)建別名:
當(dāng)同一個(gè)cs引用了不同的命名空間,但這些命名控件都包括了一個(gè)相同名字的類型的時(shí)候,可以使用using關(guān)鍵字來創(chuàng)建別名,這樣會使代碼更簡潔。注意:并不是說兩個(gè)名字重復(fù),給其中一個(gè)用了別名,另外一個(gè)就不需要用別名了,如果兩個(gè)都要使用,則兩個(gè)都需要用using來定義別名的。
usingSystem; usingaClass=NameSpace1.MyClass; usingbClass=NameSpace2.MyClass; ...... //使用方式 aClassmy1=newaClass(); Console.WriteLine(my1); bClassmy2=newbClass(); Console.WriteLine(my2);
3、使用using語句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對象。(不過該對象必須實(shí)現(xiàn)了IDisposable接口)。其功能和try,catch,Finally完全相同。
比如:
using(SqlConnectioncn=newSqlConnection(SqlConnectionString)){......}//數(shù)據(jù)庫連接 using(SqlDataReaderdr=db.GetDataReader(sql)){......}//DataReader
PS:這里SqlConnection和SqlDataReader對象都默認(rèn)實(shí)現(xiàn)了IDisposable接口,如果是自己寫的類,那就要自己手動來實(shí)現(xiàn)IDisposable接口。比如:
using(Employeeemp=newEmployee(userCode)) { ...... } Emlpoyee.cs類: publicclassEmployee:IDisposable { 實(shí)現(xiàn)IDisposable接口#region實(shí)現(xiàn)IDisposable接口 /**//// ///通過實(shí)現(xiàn)IDisposable接口釋放資源 /// publicvoidDispose() { Dispose(true); GC.SuppressFinalize(this); } /**//// ///釋放資源實(shí)現(xiàn) /// /// 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; } } /**//// ///析構(gòu)函數(shù) /// ~Employee() { Dispose(false); } privateboolm_disposed; #endregion }
使用using語句需要注意的幾點(diǎn):
3.1、對象必須實(shí)現(xiàn)IDisposeable接口,這個(gè)已經(jīng)說過,如果沒有實(shí)現(xiàn)編譯器會報(bào)錯(cuò)誤。
如:
using(stringstrMsg="MyTest") { Debug.WriteLine(strMsg);//Can'tbecompiled }
3.2、第二個(gè)using對象檢查是靜態(tài)類型檢查,并不支持運(yùn)行時(shí)類型檢查,因此如下形式也會出現(xiàn)編譯錯(cuò)誤。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString);
objectobjConn=sqlConn;
using(objConn)
{
Debug .WriteLine(objConn.ToString());//Can'tbecompiled
}
不過對于后者,可以通過“as”來進(jìn)行類型轉(zhuǎn)換方式來改進(jìn)。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString); objectobjConn=sqlConn; using(objConnasIDisposable) { Debug.WriteLine(objConn.ToString()); }
3.3、當(dāng)同時(shí)需要釋放多個(gè)資源時(shí)候,并且對象類型不同,可以這樣寫:
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關(guān)鍵字只是針對C#語句,對于VB等其他語言還沒有對應(yīng)的功能。
上述內(nèi)容就是C# 中using的作用是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁標(biāo)題:C#中using的作用是什么
網(wǎng)頁URL:http://www.rwnh.cn/article42/jijihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、小程序開發(fā)、App設(shè)計(jì)、外貿(mào)建站、企業(yè)網(wǎng)站制作、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)