亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

談C# using的用法與好處

 更新時間:2016年05月07日 16:43:56   作者:net小伙  
這篇文章主要為大家詳細(xì)介紹了C# using的用法與好處,具體分析了using指令調(diào)用的Dispose()方法,感興趣的朋友可以參考一下

之前的一篇文章中的代碼中有一個using的用法,剛開始查看了一些資料說是強(qiáng)制關(guān)閉對象的一個命令。今天又查了一些資料,才明白,原來using指令調(diào)用了一個方法——Dispose()方法。而Dispose()方法的作用就是釋放所有的使用資源。

例:

public void ExecuteCommand( string connString, string commandString ) 
{ 
 SqlConnection myConnection = new SqlConnection( connString ); 
 SqlCommand mySqlCommand = new SqlCommand( commandString, 
  myConnection ); 
 
 myConnection.Open(); 
 mySqlCommand.ExecuteNonQuery(); 
} 

這個例子中的兩個可處理對象沒有被恰當(dāng)?shù)尼尫牛篠qlConnection和SqlCommand。兩個對象同時保存在內(nèi)存里直到析構(gòu)函數(shù)被調(diào)用。

解決這個問題的方法就是在使用完命令和鏈接后就調(diào)用它們的Dispose:

public void ExecuteCommand( string connString, string commandString ) 
{ 
 SqlConnection myConnection = new SqlConnection( connString ); 
 SqlCommand mySqlCommand = new SqlCommand( commandString, 
  myConnection ); 
 
 myConnection.Open(); 
 mySqlCommand.ExecuteNonQuery(); 
 
 mySqlCommand.Dispose( ); 
 myConnection.Dispose( ); 
} 

使用using語句也可以很好的實現(xiàn)此功能,而且代碼很清晰:

public void ExecuteCommand( string connString, string commandString ) 
{ 
 using ( SqlConnection myConnection = new  SqlConnection( connString )) 
 { 
  using ( SqlCommand mySqlCommand = new SqlCommand( commandString, myConnection )) 
  { 
   myConnection.Open(); 
   mySqlCommand.ExecuteNonQuery(); 
  } 
 } 
} 

當(dāng)你在一個函數(shù)內(nèi)使用一個可處理對象時,using語句是最簡單的方法來保證這個對象被恰當(dāng)?shù)奶幚淼簟.?dāng)這些對象被分配時,會被編譯器放到一個try/finally塊中。

SqlConnection myConnection = null; 
 
// Example Using clause: 
using ( myConnection = new SqlConnection( connString )) 
{ 
 myConnection.Open(); 
} 
 
 
// example Try / Catch block: 
try { 
 myConnection = new SqlConnection( connString ); 
 myConnection.Open(); 
} 
finally { 
 myConnection.Dispose( ); 
} 

有時候使用try/finally塊的時候會發(fā)現(xiàn)如果發(fā)生錯誤,程序不會報錯。本人感覺還是使用using語句比較好。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • C#中split用法實例總結(jié)

    C#中split用法實例總結(jié)

    這篇文章主要介紹了C#中split用法,結(jié)合實例形式總結(jié)分析了C#常見的split操作字符串相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • 關(guān)于C#繼承的簡單應(yīng)用代碼分析

    關(guān)于C#繼承的簡單應(yīng)用代碼分析

    在本篇文章里小編給大家整理了一篇關(guān)于C#繼承的簡單應(yīng)用代碼分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-05-05
  • c#之事件用法

    c#之事件用法

    這篇文章介紹了c#中事件的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • .NET的深復(fù)制方法(以C#語言為例)

    .NET的深復(fù)制方法(以C#語言為例)

    深復(fù)制需要將對象實例中字段引用的對象也進(jìn)行復(fù)制,在平時的編程工作中經(jīng)常要用到這種復(fù)制方式,下面以c#為例來演示一下方法。
    2016-10-10
  • C#計算代碼執(zhí)行時間的方法

    C#計算代碼執(zhí)行時間的方法

    在一些測試工作時我們需要獲得高精度的代碼執(zhí)行時間以比較其效率。
    2013-03-03
  • C#并行編程之?dāng)?shù)據(jù)并行Tasks.Parallel類

    C#并行編程之?dāng)?shù)據(jù)并行Tasks.Parallel類

    這篇文章介紹了C#并行編程之?dāng)?shù)據(jù)并行Tasks.Parallel類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#中Backgroundworker與Thread的區(qū)別

    C#中Backgroundworker與Thread的區(qū)別

    本文主要介紹了C#中Backgroundworker與Thread的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • c#分頁顯示服務(wù)器上指定目錄下的所有圖片示例

    c#分頁顯示服務(wù)器上指定目錄下的所有圖片示例

    這篇文章主要介紹了c#分頁顯示服務(wù)器上指定目錄下的所有圖片示例,需要的朋友可以參考下
    2014-05-05
  • Unity實現(xiàn)鼠標(biāo)雙擊與長按的檢測

    Unity實現(xiàn)鼠標(biāo)雙擊與長按的檢測

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)鼠標(biāo)雙擊與長按的檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C#中的Timer和DispatcherTimer使用實例

    C#中的Timer和DispatcherTimer使用實例

    這篇文章主要介紹了C#中的Timer和DispatcherTimer使用實例,本文分別給出它們的使用代碼實例,需要的朋友可以參考下
    2015-01-01

最新評論