国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

談C# using的用法與好處

2020-01-24 01:10:23
字體:
來源:轉載
供稿:網友

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

例:

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

這個例子中的兩個可處理對象沒有被恰當的釋放:SqlConnection和SqlCommand。兩個對象同時保存在內存里直到析構函數被調用。

解決這個問題的方法就是在使用完命令和鏈接后就調用它們的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語句也可以很好的實現此功能,而且代碼很清晰:

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

當你在一個函數內使用一個可處理對象時,using語句是最簡單的方法來保證這個對象被恰當的處理掉。當這些對象被分配時,會被編譯器放到一個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塊的時候會發現如果發生錯誤,程序不會報錯。本人感覺還是使用using語句比較好。
以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青浦区| 渑池县| 永兴县| 沂水县| 黄陵县| 凤冈县| 中山市| 封丘县| 开鲁县| 舒城县| 营口市| 莒南县| 靖安县| 九龙县| 大理市| 闵行区| 常山县| 偃师市| 交城县| 永善县| 涟水县| 中阳县| 阳高县| 湄潭县| 东辽县| 栾川县| 当阳市| 观塘区| 栖霞市| 达日县| 锡林浩特市| 扬州市| 抚顺市| 承德市| 阳原县| 娱乐| 光泽县| 安顺市| 宜兰县| 高雄县| 克东县|