à l'aide de déclaration FileStream et / ou StreamReader - Visual Studio 2012 Avertissements

Le nouveau Visual Studio 2012 est plaint d'une commune de la combinaison de code j'ai toujours utilisé. Je sais que cela semble exagéré, mais j'ai fait ce qui suit dans mon code "juste pour être sûr".

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

Visual studio est un "avertissement" moi, je suis l'élimination de fs plus d'une fois. Donc ma question est-ce, serait la bonne façon d'écrire cet être:

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

Ou devrais-je le faire de cette manière (ou d'une autre variante non mentionné).

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

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

J'ai cherché sur plusieurs questions dans StackOverflow mais n'a pas trouvé quelque chose qui a abordé la meilleure pratique pour cette combinaison directement.

Merci!

  • +1: Bonne question, JUbbard80! 🙂
  • Avec un double à l'aide de ce genre dans VS2013, un FileStream et un StreamReader, il n'y a pas d'avertissement émis. Est-ce dû à la combinaison de FileStream et StreamReader? Ou ne VS2013 (par opposition à VS2012) reconnaître que cette double élimination est un nonissue?
InformationsquelleAutor JHubbard80 | 2012-08-17