同一スコープかつ複数のusingステートメントでオブジェクトを使用する 言語: C# C#では、同一スコープかつ複数のusingステートメントを、連続して記述することもできます。 これは、ブレース{...}を省略したif文と同様、単にブレースを省略したusingを記述するものです。 同一スコープかつ複数のusingステートメントでオブジェクトを使用する すべて選択してコピー ダウンロード 行番号を表示する using System; using System.IO; class Sample { static void Main() { // 同一スコープで複数のusingステートメント using (Stream fromStream = File.OpenRead("source.txt")) using (Stream toStream = File.OpenWrite("dest.txt")) { fromStream.CopyTo(toStream); } // 上記のコードは以下と同じ using (var fromStream = File.OpenRead("source.txt")) using (var toStream = File.OpenWrite("dest.txt")) fromStream.CopyTo(toStream); // 比較として上記と同じ構造の構文をifに置き換えると次のようになる if (true) if (true) { Console.WriteLine(true); } if (true) if (true) Console.WriteLine(true); } } 関連するページ try-finallyステートメントを使ってStreamReaderを確実に閉じる 単一のusingステートメントで複数のオブジェクトを使用する usingステートメントを入れ子にして複数のオブジェクトを使用する ローカル変数宣言形式のusingステートメント(using宣言)でオブジェクトを使用する await usingステートメントを使ってオブジェクトを非同期的に破棄する LockBits/UnlockBitsの呼び出しをラップしてusingステートメントで使えるようにする SafeHandleクラスを使ってライブラリのハンドルをラップする