偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# using作用透析 三種用法不用愁

開發(fā) 后端
這里將介紹C# using的三種作用,分別是引用命名空間、為命名空間或類型創(chuàng)建別名和使用using語句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對(duì)象。

三種不同的C# using作用,令using關(guān)鍵字在.NET程序開發(fā)過程中占有重要的地位,特別是進(jìn)行命名空間或創(chuàng)建別名時(shí)。

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)建別名,這樣會(huì)使代碼更簡(jiǎn)潔。注意:并不是說兩個(gè)名字重復(fù),給其中一個(gè)用了別名,另外一個(gè)就不需要用別名了,如果兩個(gè)都要使用,則兩個(gè)都需要用using來定義別名的。

  1. usingSystem;  
  2. usingaClass=NameSpace1.MyClass;  
  3. usingbClass=NameSpace2.MyClass;  
  4. ......  
  5. //使用方式  
  6. aClassmy1=newaClass();  
  7. Console.WriteLine(my1);  
  8. bClassmy2=newbClass();  
  9. Console.WriteLine(my2); 

3、使用using語句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對(duì)象。(不過該對(duì)象必須實(shí)現(xiàn)了IDisposable接口)。其功能和try,catch,Finally完全相同。
比如:

  1. using(SqlConnectioncn=newSqlConnection(SqlConnectionString)){......}//數(shù)據(jù)庫(kù)連接  
  2. using(SqlDataReaderdr=db.GetDataReader(sql)){......}//DataReader 

PS:這里SqlConnection和SqlDataReader對(duì)象都默認(rèn)實(shí)現(xiàn)了IDisposable接口,如果是自己寫的類,那就要自己手動(dòng)來實(shí)現(xiàn)IDisposable接口。比如:

  1. using(Employeeemp=newEmployee(userCode))  
  2. {  
  3. ......  
  4. }  
  5. Emlpoyee.cs類:  
  6. publicclassEmployee:IDisposable  
  7. {  
  8.  
  9. 實(shí)現(xiàn)IDisposable接口#region實(shí)現(xiàn)IDisposable接口  
  10. /**////  
  11. ///通過實(shí)現(xiàn)IDisposable接口釋放資源  
  12. ///  
  13. publicvoidDispose()  
  14. {  
  15. Dispose(true);  
  16. GC.SuppressFinalize(this);  
  17. }  
  18. /**////  
  19. ///釋放資源實(shí)現(xiàn)  
  20. ///  
  21. ///  
  22. protectedvirtualvoidDispose(booldisposing)  
  23. {  
  24. if(!m_disposed)  
  25. {  
  26. if(disposing)  
  27. {  
  28. //Releasemanagedresources  
  29. if(db!=null)  
  30. this.db.Dispose();  
  31. if(dt!=null)  
  32. this.dt.Dispose();  
  33. this._CurrentPosition=null;  
  34. this._Department=null;  
  35. this._EmployeeCode=null;  
  36.  
  37. }  
  38. //Releaseunmanagedresources  
  39. m_disposed=true;  
  40. }  
  41. }  
  42. /**////  
  43. ///析構(gòu)函數(shù)  
  44. ///  
  45. ~Employee()  
  46. {  
  47. Dispose(false);  
  48. }  
  49. privateboolm_disposed;  
  50.  
  51. #endregion  

使用using語句需要注意的幾點(diǎn):

3.1、對(duì)象必須實(shí)現(xiàn)IDisposeable接口,這個(gè)已經(jīng)說過,如果沒有實(shí)現(xiàn)編譯器會(huì)報(bào)錯(cuò)誤。
如:

  1. using(stringstrMsg="MyTest")  
  2.  
  3. {  
  4. Debug.WriteLine(strMsg);//Can'tbecompiled  
  5.  

3.2、第二個(gè)using對(duì)象檢查是靜態(tài)類型檢查,并不支持運(yùn)行時(shí)類型檢查,因此如下形式也會(huì)出現(xiàn)編譯錯(cuò)誤。

  1. SqlConnectionsqlConn=newSqlConnection(yourConnectionString);  
  2. objectobjConn=sqlConn;  
  3. using(objConn)  
  4. {  
  5. Debug .WriteLine(objConn.ToString());//Can'tbecompiled
    }

不過對(duì)于后者,可以通過“as”來進(jìn)行類型轉(zhuǎn)換方式來改進(jìn)。

  1. SqlConnectionsqlConn=newSqlConnection(yourConnectionString);  
  2. objectobjConn=sqlConn;  
  3. using(objConnasIDisposable)  
  4. {  
  5. Debug.WriteLine(objConn.ToString());  

3.3、當(dāng)同時(shí)需要釋放多個(gè)資源時(shí)候,并且對(duì)象類型不同,可以這樣寫:

  1. using(SqlConnectionsqlConn=newSqlConnection(yourConnectionString))  
  2. using(SqlCommandsqlComm=newSqlCommand(yourQueryString,sqlConn))  
  3. {  
  4. sqlConn.Open();//Openconnection  
  5. //OperateDBhereusing"sqlConn"  
  6. sqlConn.Close();//Closeconnection  

如果對(duì)象類型相同,可以寫到一起:

  1. using(FontMyFont=newFont("Arial",10.0f),MyFont2=newFont("Arial",10.0f))  
  2. {  
  3. //useMyFontandMyFont2  
  4. }//compilerwillcallDisposeonMyFontandMyFont2 

3.4、using關(guān)鍵字只是針對(duì)C#語句,對(duì)于VB等其他語言還沒有對(duì)應(yīng)的功能。

PS:本C# using的三種作用屬個(gè)人學(xué)習(xí)總結(jié),歡迎交流。

【編輯推薦】

  1. C#類和結(jié)構(gòu)簡(jiǎn)單介紹
  2. C# explicti和implicit詳解
  3. C#編寫ActiveX控件詳細(xì)介紹
  4. C# StringBuilder和String淺析
  5. C#別名指示符學(xué)習(xí)經(jīng)驗(yàn)
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-26 18:10:44

C# using的用法

2009-08-26 17:21:05

C# using

2009-08-26 14:01:33

C# using用法

2011-05-23 13:27:53

2024-06-04 17:02:38

newC#編程語言

2009-08-26 18:14:11

C#排序算法

2024-05-29 14:09:00

C#編程this

2011-07-04 15:14:49

C#

2009-08-06 15:26:18

C#異常類型

2009-08-28 09:43:05

C#事件

2024-12-31 00:05:24

new?關(guān)鍵字C#

2009-08-27 16:00:59

C#中using用法

2011-07-06 10:47:52

C#using

2009-09-08 10:37:57

C#遍歷CheckBo

2024-05-27 00:20:00

2024-08-13 08:25:16

C#外部程序方式

2024-02-26 13:47:00

C#Socket數(shù)據(jù)接收

2009-07-30 16:27:33

C#比較時(shí)間

2009-08-27 15:53:30

C#中using wo

2024-12-03 00:40:55

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)