C# 语法理解上的混乱
我无法理解使用c#的C# 语法理解上的混乱,c#,using,C#,Using,我无法理解使用c#的语法的。我见过许多使用 代码像 using (StreamReader rdr = File.OpenText("file.txt")) { //do stuff } 该语法的含义是什么?它是某种循环吗?使用“using”可以确保正确处理对象 以下问题有一些很好的答案: 您也可以在MSN上阅读以下内容: 使用语法的是一个包装器,用于确保资源已被释放(对实现IDisposable的事物进行操作),并且您正在为其后面的块的范围使用特定的资源 使用语句的就是这方面的语法糖:
语法的。我见过许多使用
代码像
using (StreamReader rdr = File.OpenText("file.txt"))
{
//do stuff
}
该语法的含义是什么?它是某种循环吗?使用“using”可以确保正确处理对象
以下问题有一些很好的答案:
您也可以在MSN上阅读以下内容:
使用
语法的是一个包装器,用于确保资源已被释放(对实现IDisposable
的事物进行操作),并且您正在为其后面的块的范围使用特定的资源
使用
语句的就是这方面的语法糖:
StreamReader rdr = File.OpenText("file.txt");
try
{
//do stuff
}
finally
{
rdr.Dispose();
}
是处理需要处理和/或关闭的对象的非常有用的方法
它替代了这样的代码
StreamReader sr = new StreamReader(....)
try
{
.... use the StreamReader
}
finally
{
sr.Dispose();
}
如您所见,using initial行中声明的对象总是传递给finally块,并且在异常情况下也会调用其dispose方法
using语句不应与所使用的语句混淆
允许在命名空间中使用类型,以便不必
限定该命名空间中类型的使用,并创建别名
对于命名空间或类型。这称为using alias指令
不,这不是一个循环。它是一条语句,表示另一个代码块中的新代码块。考虑到这一点,您不必处理在using
语句中初始化的对象,但这意味着它们必须是IDisposable
,才能像这样使用。较新版本的.NET framework可以很好地处理已处理的对象,从而最大限度地减少应用程序的内存占用。在我看来,它还可以使长过程更好地结构化,更具可读性
请参见答案+1,但必须在try
之外声明sr
,才能在finally
-不同的词法范围shmm中访问。最好更正sr.Dispose()它在那里不起作用:)@mlorbetske你当然是对的
using System.IO; // Allows to type StreamReader instead of System.IO.StreamReader
using Project = PC.MyCompany.Project; // Allows to type just Project.MyClass