程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 談C# using的用法與利益

談C# using的用法與利益

編輯:C#入門知識

談C# using的用法與利益。本站提示廣大學習愛好者:(談C# using的用法與利益)文章只能為提供參考,不一定能成為您想要的結果。以下是談C# using的用法與利益正文


之前的一篇文章中的代碼中有一個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語句比擬好。
以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved