Net 》》C# 》》try finally 执行顺序
在 C# 中,finally 块确实会在 try 块中的 return 之前执行,但有一个重要的细节。
string TestMethod()
{try{Console.WriteLine("Try block");return "AAAA"; // 这个返回值会被暂存}finally{ //finally 中不能有 returnConsole.WriteLine("Finally block");// finally 在方法返回前执行}
}
// 结果如下
Try block
Finally block
返回值:"AAAA"
string TestMethod()
{string result = "Initial";try{result = "Try value";Console.WriteLine("Setting result in try: " + result);return result;}finally{result = "Finally value"; // 这不会影响返回值,因为try中的return 结果已经暂存起来了Console.WriteLine("Finally block: " + result);}
}// 调用结果:
string value = TestMethod();
Console.WriteLine("Returned: " + value);//结果如下
Setting result in try: Try value
Finally block: Finally value
Returned: Try value