我无法理解c#的using
语法。我见过很多使用
using (StreamReader rdr = File.OpenText("file.txt"))
{
//do stuff
}
该语法的含义是某种循环吗?
答案 0 :(得分:1)
using
语法是一个包装器,用于确保资源处理(对实现IDisposable
的操作进行操作),您使用跟随它的块范围的特定资源。
using
语句只是语法糖:
StreamReader rdr = File.OpenText("file.txt");
try
{
//do stuff
}
finally
{
rdr.Dispose();
}
答案 1 :(得分:1)
using statement是处理需要处理和/或关闭的对象的非常有用的方法
它替换像这样的代码
StreamReader sr = new StreamReader(....)
try
{
.... use the StreamReader
}
finally
{
sr.Dispose();
}
如您所见,在使用初始行内声明的对象总是传递给finally块,并且在出现异常时也会调用其dispose方法
不应将using语句与使用的using directive混淆
允许在命名空间中使用类型,以便您不必使用 限定在该命名空间中使用类型,并创建别名 用于命名空间或类型。这称为使用别名指令。
using System.IO; // Allows to type StreamReader instead of System.IO.StreamReader
using Project = PC.MyCompany.Project; // Allows to type just Project.MyClass
答案 2 :(得分:0)
答案 3 :(得分:0)
不,这不是一个循环。它是一个声明,表示另一个代码块中的新代码块。好的想法是,您不必处理在using
语句中初始化的对象,但这意味着它们必须是IDisposable
才能像这样使用。较新版本的.NET框架可以很好地处理已处置的对象,并最大限度地减少应用程序的内存占用。它还使长程序结构更好,更易读(在我看来)。