с использованием инструкции FileStream и/или StreamReader -Предупреждения Visual Studio 2012

Новая Visual Studio 2012 жалуется на общую комбинацию кода, которую я всегда использовал. Я знаю, что это кажется излишним, но я сделал следующее в своем коде «просто для уверенности».

using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    using (var sr = new StreamReader(fs))
    {
        // Code here
    }
}

Visual Studio «предупреждает» меня, что я избавляюсь от fs более одного раза. Итак, мой вопрос заключается в следующем: будет ли правильным писать это:

using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    var sr = new StreamReader(fs);
    // do stuff here
}

Или я должен сделать это так (или какой-то другой вариант, не упомянутый ).

var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

using (var sr = new StreamReader(fs))
{
    // Code here
}

Я просмотрел несколько вопросов в StackOverflow, но не нашел ничего, что напрямую касалось бы передовой практики для этой комбинации.

Благодарю вас!

38
задан JHubbard80 15 October 2016 в 17:43
поделиться