使用语法理解困惑

时间:2013-06-06 13:41:15

标签: c# using

我无法理解c#的using语法。我见过很多使用

的代码片段 像代码一样。

using (StreamReader rdr = File.OpenText("file.txt"))
{
 //do stuff
}

该语法的含义是某种循环吗?

4 个答案:

答案 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)

使用'使用'确保对象被正确处理掉。

以下问题有一些很好的答案:

Uses of "using" in C#

您也可以在MSN上阅读以下内容:

MSDN C# Using

答案 3 :(得分:0)

不,这不是一个循环。它是一个声明,表示另一个代码块中的新代码块。好的想法是,您不必处理在using语句中初始化的对象,但这意味着它们必须是IDisposable才能像这样使用。较新版本的.NET框架可以很好地处理已处置的对象,并最大限度地减少应用程序的内存占用。它还使长程序结构更好,更易读(在我看来)。

Using Statement