日期:2014-05-19  浏览次数:20761 次

finaly一定能走到吗?
请问一下

比如一段代码

try
{
      //-------
      return   0;
}
catch
{
    //-------
    return   1;
}
finaly
{
        //---
        return   -1
}

这时如果try中无错误或有错误是否都能在返回前执行finaly的代码呢?
返回啥呢?
谢谢

------解决方案--------------------
1。
此代码无法编译通过


try
{
//-------
return 0;
}
catch
{
//-------
return 1;
}
finaly
{
//---
return -1; // error, CS0157: 控制不能离开 finally 子句主体

}

2。
LZ 你就想当然,也懒得自己测试?

3。
即使 return 语句出现在 try 块中,并且正常返回时, finally 块保证执行,然后返回,将控制权交给调用方
------解决方案--------------------

不管怎么样 finaly 里面的都会执行