2011-06-24 11 views
-1

可能性の重複:
What is the C# Using block and why should I use it?本当にC#で 'using'ブロックを使用していますか?

いただきましusing blockの意義?なぜ私はusing block?

例えば内部の私のコードを記述する必要があります。

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString); 
using (con) 
{ 
    con.Open();    
    // 
    // Some code 
    // 
    con.Close(); 
} 

これはusing statementを使用する正しい方法ですか?

+7

あなたがすべてで 'using'を使用して上の任意の研究を行っていますか? – BoltClock

答えて

1

usingIDisposableインターフェースと一緒に行きます。

スコープを終了する前に、using節のオブジェクトに対してDisposeメソッドが呼び出されることが保証されています。

それ以外の理由はありません。

+0

ありがとう、私は何を求めていた! –

0

定義は次のとおりです。「スコープを定義します。オブジェクトの外側にスコープを定義します。」 詳細についてはMSDNをご覧ください。

0

あなたは は、任意のリソースをカプセル化するオブジェクトを使用している場合、あなたは に持っているあなたが オブジェクトで行われたときに、オブジェクトの処分 メソッドが呼び出されていることを確認します。これは、C#でusingステートメント を使用すると、より簡単に を実行することができます。ここ

さらに詳しい情報: http://www.codeproject.com/KB/cs/tinguusingstatement.aspx

1

using (x) {...}は、usingステートメントは、(IDisposableインターの)処分はあなたがオブジェクトのメソッドを呼び出している間に例外が発生した場合でも呼ばれていることを保証

try 
{ 
    ... 
} 
finally 
{ 
    x.Dispose(); 
} 
0

ためsyntactic sugarに他なりません。あなたの例では、SqlConnectionは閉じられ、usingブロックの最後に配置されます。

あなたの例は、使用ブロックを定義する一般的な方法ではありません。使用ブロックの後にconを誤って再使用する可能性があるからです。

これを試してみてください:

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString)) 
{ 
    con.Open();    
    // 
    // Some code 
    // 
} 
関連する問題