是否有可能使这段代码更紧凑,以某种方式在相同的使用块内声明2个变量?

using (var sr = new StringReader(content))
{
    using (var xtr = new XmlTextReader(sr))
    {
        obj = XmlSerializer.Deserialize(xtr) as TModel;
    }
}

当前回答

公认的方法是将语句串起来:

using (var sr = new StringReader(content))
using (var xtr = new XmlTextReader(sr))
{
    obj = XmlSerializer.Deserialize(xtr) as TModel;
}

注意IDE也将支持这种缩进,即它不会故意尝试缩进第二个using语句。

其他回答

以下仅适用于相同类型的实例!谢谢你的评论。

下面的示例代码来自MSDN:

using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f))
{
    // Use font3 and font4.
}

公认的方法是将语句串起来:

using (var sr = new StringReader(content))
using (var xtr = new XmlTextReader(sr))
{
    obj = XmlSerializer.Deserialize(xtr) as TModel;
}

注意IDE也将支持这种缩进,即它不会故意尝试缩进第二个using语句。