正如 MSDN提到的:
finally 块中的代码在遇到 Try 或 Catch 块中的 Return 语句之后运行,但在该 Return 语句执行之前。在这种情况下,Finally 块中的 Return 语句在初始 Return 语句之前执行。这给出了不同的返回值。为了防止这种潜在的混乱情况,请避免在 finally 块中使用 Return 语句。
由于我对这篇笔记的了解不多,所以我举个例子(VB.NET,我认为在C#中情况类似):
Try
HugeOp()
Return "OK"
Catch
Return "NOK"
Finally
Return "Finally"
End Try
现在,为什么这在 C# 和 VB.NET 中都是非法的?