VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之try{}里有一个 return 语句,那么紧跟在这(2)

  测试结果如下:

  

  所以我觉得finally{}里面的code是在return之后执行的。

  此测试较粗糙,如有其它方法证明,望告知。

----------------------------------------------------------------------------------------------华丽的分割线-----------------------------------------------------------------------------------------------------------------------------------------------

  之前的测试果然很粗糙,搞错了一个概念,return到底是在什么时候才算执行,什么时候执行完。上面打印“我是return”的时候,我以为是return执行完了,其实那个时候只是去准备return的返回值去了,并没有真正的返回“1”并跳出Test()方法,准备好返回值之后,接着去执行finally{}里面的code,打印了“我是finally”,最后Test()方法才算执行完,并真正的返回(return)“1”到main里面。

按照@以后会觉得昵称很幼稚 老哥的提醒,修改了一下main()里面的代码,

1
2
3
4
5
6
7
static void Main(string[] args)
{
    //测试
    Console.WriteLine("Test结果:" + Test());
    System.Console.WriteLine("结束了");
    System.Console.ReadLine();
}

  结果如下:

  

  所以finally{}里面的code应该是在return之前执行的。

  在http://bbs.csdn.net/topics/60474475 此贴中,五楼的老哥的话,“函数应该是栈调用,如果先执行return ,哪不是退到上个栈了,怎么调用finally, 所以我觉得先调用finally”,

  在http://blog.csdn.net/gaoyuanfeng/article/details/4064388 文章中,finally与return的关系也讲得很明白了,这一天天的真是受教了。


相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号