国产探花免费观看_亚洲丰满少妇自慰呻吟_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語句比較好。
以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枞阳县| 安国市| 通化市| 彰武县| 稻城县| 兴山县| 武安市| 托克逊县| 天峻县| 湛江市| 清远市| 老河口市| 韶关市| 三门峡市| 上高县| 齐齐哈尔市| 松江区| 辉县市| 江永县| 山阴县| 荔波县| 禹州市| 勐海县| 大石桥市| 邻水| 丹巴县| 石渠县| 安乡县| 象山县| 延川县| 顺昌县| 连云港市| 灵山县| 汨罗市| 偃师市| 姚安县| 紫阳县| 昭平县| 东平县| 三台县| 当涂县|