c# - using var 总是被执行吗?

标签 c# using

在我维护的一些代码中,我遇到了这个:

int Flag;
using (StreamReader reader = new StreamReader(FileName, Encoding.GetEncoding("iso-8859-1"), true))
{
    Flag = 1;
    // Some computing code
}

if(Flag == 1)
{
    // Some other code
}

据我所知,如果执行了 using 部分,这是一种执行其他指令的方法。但是是否有可能 using 不被执行(除非引发异常)?或者这是完全无用的代码?

最佳答案

那个代码没用...

如果您添加一个 try... catch 它可能有一种意义...您想知道是否/在哪里发生异常,例如:

int flag = 0;

try
{
    using (StreamReader reader = new StreamReader(FileName, Encoding.GetEncoding("iso-8859-1"), true))
    {
        flag = 1;

        reader.ReadToEnd();
        flag = 2;
    }

    flag = int.MaxValue;
}
catch (Exception ex)
{

}

if (flag == 0)
{
    // Exception on opening
}
else if (flag == 1)
{
    // Exception on reading
}
else if (flag == 2)
{
    // Exception on closing
}
else if (flag == int.MaxValue)
{
    // Everything OK
}

关于c# - using var 总是被执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587322/

相关文章:

c# - SQL Server : Event does not reference any tables (Tuning Advisor warning)

c# - 确定文本文件中使用的行结尾

c++ - 是否可以在 cpp >= 11 中使用继承私有(private)构造函数

带有来自 NuGet 的 QuickGraph 包的 C#

c# - 确保 Singleton 只调用数据库查询一次

c# - 向按钮添加新事件

c# - ZeroMQ Create Context 和 Create Socket 有多贵?

c# - .NET - 用单个 using 语句替换嵌套的 using 语句

c# - WinForm 图表控件 : Change size of chart when saving it to a file

c++ - #include 指令和 "using"语句的顺序在 C++ 头文件的开头是否重要?