Multiple using statements with one block C# with Example
It is possible to use multiple nested using statements without added multiple levels of nested braces. For example: using (var input = File.OpenRead("input.txt")) { using (var output = File.OpenWrite("output.txt")) { input.CopyTo(output); } // output is disposed here } // input is disposed here An alternative is to write: using (var input = File.OpenRead("input.txt")) using (var output = File.OpenWrite("output.txt")) { input.CopyTo(output); } // output and then input are disposed here Which is exactly equivalent to the first example. Note: Nested using statements might trigger Microsoft Code Analysis rule CS2002 (see this answer for clarification) and generate a warning. As explained in the linked answer, it is generally safe to nest using statements. When the types within the using statement are of the same type you can comma-delimit them and specify the type only once (though this is uncommon): using (FileStream file = File.Open("MyFile.txt"), file2 = File.Open("MyFile2.txt")) { } This can also be used when the types have a shared hierarchy: using (Stream file = File.Open("MyFile.txt"), data = new MemoryStream()) { } The var keyword cannot be used in the above example. A compilation error would occur. Even the comma separated declaration won't work when the declared variables have types from different hierarchies.