Angelo Lee's Blog
This is my kingdom .If i don't fight for it ,who will ?

避免在finally撰写无效代码:

先提出一个问题,即:是否存在一种打破try- finally执行顺序的情况。答案是:没有 (除非应用程序本身因为某些很少出现的特殊情况在try块中退出)。你应该始终认为finally内代码会在方法return之前被执行,哪怕return是在try块中。但需要区分引用类型变量和值类型变量在 finally中会导致不同结果

返回的将是1。代码中,i=2实际上是一段无效代 码 ,如果编译采用Release模式,编译器会直接将i=2删除,它不会为其生成对应的IL代码。但是:

TestUserReturnInTry方法返回的User中,Name的值已经改变为Rose了。

posted on 2011-01-28 09:47  Angelo Lee  阅读(146)  评论(0编辑  收藏  举报