我无法理解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 初始行中声明的对象始终传递给 finally 块,并且在出现异常时也调用其 dispose 方法
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
语句中初始化的对象,但这意味着它们必须这样IDisposable
才能被使用。较新版本的 .NET 框架可以很好地处理已处置的对象,并最大限度地减少应用程序的内存占用。它还使长过程更好地结构化和更具可读性(在我看来)。