如果我在我的类中创建一个bool,就像它一样bool check,它默认为false.
当我在我的方法中创建相同的bool时bool check(而不是在类中),我得到一个错误"使用未分配的局部变量检查".为什么?
我有一个简单的try-catch-finally代码块,它在.NET3.5中按预期工作,但在使用.NET4.5.1创建的项目中,相同的代码表现完全不同.基本上,在.NET4.5.1中,如果发生异常而不是我在try-catch-finally块中预期的行为,则"finally"块不会被命中.我试过不同的机器,我的另外两个同事也在尝试,我们都得到了相同的结果.这对我来说很关心,因为我使用finally块来关闭DataReader,某些连接以及诸如此类的东西.
如果在没有调试器的RELEASE模式下抛出异常或运行RELEASE编译的EXE文件时,.NET4.5.1不会触发"finally"块.在调试模式下,两个.NET版本都达到了"finally"块.
同样,下面的代码在.NET3.5 RELEASE模式下没有调试器但在.NET4.5.1中没有表现.我错过了什么吗?有人可以帮忙吗?
class Program
{
static void Main(string[] args)
{
try
{
string a = null;
var x = a.Length;
Console.WriteLine(x);
}
catch (Exception ex)
{
throw;
}
finally
{
Console.WriteLine("This is the finally block.");
}
Console.WriteLine("You should not be here if an exception occured!");
}
}
Run Code Online (Sandbox Code Playgroud)