using
c#の構文がわかりません。私は多くのコードスニペットを見てきました
みたいなコード。
using (StreamReader rdr = File.OpenText("file.txt"))
{
//do stuff
}
ある種のループであるという構文の意味は何ですか?
構文は、リソースが確実に破棄されるようにするためのusing
ラッパーです( を実装するもので動作します) 。これは、それに続くブロックのスコープに特定のリソースを使用していることを示します。IDisposable
ステートメントは、このためのusing
単なる構文糖衣です。
StreamReader rdr = File.OpenText("file.txt");
try
{
//do stuff
}
finally
{
rdr.Dispose();
}
using ステートメントは、破棄またはクローズする必要があるオブジェクトを処理するための非常に便利な方法です。
このようなコードに置き換えます
StreamReader sr = new StreamReader(....)
try
{
.... use the StreamReader
}
finally
{
sr.Dispose();
}
ご覧のとおり、using intial 行内で宣言されたオブジェクトは常に finally ブロックに渡され、その dispose メソッドは例外の場合に ALSO が呼び出されます。
using ステートメントは、使用されるusing ディレクティブと混同しないでください。
名前空間での型の使用を許可して、その名前空間での型の使用を修飾する必要がないようにし、名前空間または型のエイリアスを作成します。これは、using エイリアス ディレクティブと呼ばれます。
using System.IO; // Allows to type StreamReader instead of System.IO.StreamReader
using Project = PC.MyCompany.Project; // Allows to type just Project.MyClass
「using」を使用することで、オブジェクトが正しく破棄されるようにします。
次の質問には、いくつかの良い答えがあります。
また、MSN で次の記事を読むこともできます。