Использование оператора с несколькими переменными

Можно ли сделать этот код немного более компактным, так или иначе объявив переменную 2 внутри одного и того же блока?

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

Ответ 1

Принятым способом является просто привязка операторов:

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

Обратите внимание, что среда IDE также поддерживает этот отступ, т.е. намеренно не пытается отступать от второго оператора using.

Ответ 2

Следующие действия работают только для экземпляров того же типа! Спасибо за комментарии.

Этот пример кода от MSDN:

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