例:
variable = new StreamReader( file ).ReadToEnd();
それは受け入れられますか?
いいえ、これはStreamReaderを閉じません。閉じる必要があります。を使用すると、これが自動的に行われます(GCが早くなるように破棄します)。
using (StreamReader r = new StreamReader("file.txt"))
{
allFileText = r.ReadToEnd();
}
または、.Net 2で新しいファイルを使用できます。静的メンバーの場合、何も閉じる必要はありません。
variable = File.ReadAllText("file.txt");
リソースは常に廃棄する必要があります。
// the using statement automatically disposes the streamreader because
// it implements the IDisposable interface
using( var reader = new StreamReader(file) )
{
variable = reader.ReadToEnd();
}
または、少なくとも手動で呼び出します:
reader = new StreamReader(file);
variable = reader.ReadToEnd();
reader.Close();
IDisposable
を実装するオブジェクトを破棄する必要があります。 using
ステートメントを使用して、Disposeメソッドを明示的に呼び出さずに破棄されるようにします。
_using (var reader = new StreamReader(file))
{
variable = reader.ReadToEnd();
}
_
または、 File.ReadAllText(String)
を使用します
_variable = File.ReadAllText(file);
_
はい、使い捨てオブジェクトを作成するときは、必ずusingステートメントを使用して破棄する必要があります
using (var reader = new StreamReader(file)) {
variable = reader.ReadToEnd(file);
}
ただし、この場合は、File.ReadAllText
式を簡素化するメソッド
variable = File.ReadAllText(file);
StreamReader
を閉じることをお勧めします。次のテンプレートを使用します。
string contents;
using (StreamReader sr = new StreamReader(file))
{
contents = sr.ReadToEnd();
}
singキーワードを使用する方が良いでしょう。その後、明示的に何かを閉じる必要はありません。