新しい 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 でいくつかの質問を検索しましたが、この組み合わせのベスト プラクティスに直接対処するものは見つかりませんでした。
ありがとうございました!