This question already has an answer here:
- Nested using statements in C# 16 answers
Is it possible to make this code a little more compact by somehow declaring the 2 variable inside the same using block?
using (var sr = new StringReader(content))
{
using (var xtr = new XmlTextReader(sr))
{
obj = XmlSerializer.Deserialize(xtr) as TModel;
}
}
The accepted way is just to chain the statements:
using (var sr = new StringReader(content))
using (var xtr = new XmlTextReader(sr))
{
obj = XmlSerializer.Deserialize(xtr) as TModel;
}
Note that the IDE will also support this indentation, i.e. it intentionally won’t try to indent the second using
statement.
Frank Bollack
The following only works for instances of the same type! Thanks for the comments.
This sample code is from MSDN:
using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
来源:https://stackoverflow.com/questions/9396064/using-statement-with-multiple-variables