最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

談C# using的用法與好處

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

之前的一篇文章中的代碼中有一個using的用法,剛開始查看了一些資料說是強制關(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#表達式樹基礎(chǔ)教程

    C#表達式樹基礎(chǔ)教程

    這篇文章介紹了C#表達式樹的基礎(chǔ)教程,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C#操作NPOI實現(xiàn)Excel數(shù)據(jù)導(dǎo)入導(dǎo)出

    C#操作NPOI實現(xiàn)Excel數(shù)據(jù)導(dǎo)入導(dǎo)出

    這篇文章主要為大家詳細介紹了C#如何操作NPOI實現(xiàn)Excel數(shù)據(jù)導(dǎo)入導(dǎo)出功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • C# XML與Json之間相互轉(zhuǎn)換實例詳解

    C# XML與Json之間相互轉(zhuǎn)換實例詳解

    這篇文章主要介紹了C# XML與Json之間相互轉(zhuǎn)換實例詳解,大家參考使用吧
    2013-11-11
  • C# SqlSugar批量執(zhí)行SQL語句及批量更新實體對象的操作方法

    C# SqlSugar批量執(zhí)行SQL語句及批量更新實體對象的操作方法

    SqlSugar 是一款 老牌 .NET開源ORM框架,由果糖大數(shù)據(jù)科技團隊維護和更新 ,開箱即用最易上手的ORM,這篇文章主要介紹了C# SqlSugar批量執(zhí)行SQL語句以及批量更新實體對象,需要的朋友可以參考下
    2024-07-07
  • C#?DateTime.Now.ToString()?用法示例講解

    C#?DateTime.Now.ToString()?用法示例講解

    這篇文章主要介紹了C#?DateTime.Now.ToString()?用法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • C#學(xué)習(xí)基礎(chǔ)概念二十五問

    C#學(xué)習(xí)基礎(chǔ)概念二十五問

    C#學(xué)習(xí)基礎(chǔ)概念二十五問...
    2007-04-04
  • C#中自定義事件和委托實例

    C#中自定義事件和委托實例

    這篇文章主要介紹了C#中自定義事件和委托實例的,本文先是闡述了事件的原理,然后講解了事件和委托的步驟,并給出了實例代碼,需要的朋友可以參考下
    2015-01-01
  • C# 顯示、隱藏窗口對應(yīng)的任務(wù)欄

    C# 顯示、隱藏窗口對應(yīng)的任務(wù)欄

    WPF中全屏窗口,會自動隱藏任務(wù)欄,那非全屏窗口如何隱藏任務(wù)欄?甚至有沒有一種場景,隱藏任務(wù)后自定義一套系統(tǒng)任務(wù)欄來顯示?這篇文章主要介紹了C# 顯示、隱藏窗口對應(yīng)的任務(wù)欄,需要的朋友可以參考下
    2021-10-10
  • C#實現(xiàn)壓縮pdf文件的示例代碼

    C#實現(xiàn)壓縮pdf文件的示例代碼

    PDF 文件如果文件太大則會影響傳輸效果同時也會占用過多磁盤空間,所以這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)有效地壓縮 PDF 文件,需要的可以參考下
    2023-11-11
  • C#讀取二進制文件方法分析

    C#讀取二進制文件方法分析

    這篇文章主要介紹了C#讀取二進制文件方法,較為詳細的分析了C#讀取二進制文件的原理與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01

最新評論

潜江市| 黔江区| 化德县| 桓台县| 兴国县| 潞西市| 施甸县| 囊谦县| 若羌县| 云林县| 闻喜县| 古蔺县| 深圳市| 九寨沟县| 砀山县| 武平县| 张家川| 泾源县| 台南市| 云林县| 集贤县| 盐津县| 临夏县| 桦甸市| 富宁县| 平泉县| 成武县| 米泉市| 康马县| 泾阳县| 九龙城区| 额济纳旗| 天气| 湘潭县| 天津市| 仁化县| 利津县| 淅川县| 永新县| 西城区| 北辰区|