欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

談C# using的用法與好處

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

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

例:

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

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

解決這個(gè)問(wèn)題的方法就是在使用完命令和鏈接后就調(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語(yǔ)句也可以很好的實(shí)現(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)你在一個(gè)函數(shù)內(nèi)使用一個(gè)可處理對(duì)象時(shí),using語(yǔ)句是最簡(jiǎn)單的方法來(lái)保證這個(gè)對(duì)象被恰當(dāng)?shù)奶幚淼?。?dāng)這些對(duì)象被分配時(shí),會(huì)被編譯器放到一個(gè)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( ); 
} 

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

相關(guān)文章

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

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

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

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

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

    c#之事件用法

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

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

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

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

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

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

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

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

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

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

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

    Unity實(shí)現(xiàn)鼠標(biāo)雙擊與長(zhǎng)按的檢測(cè)

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

    C#中的Timer和DispatcherTimer使用實(shí)例

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

最新評(píng)論