C#Web服务 – 返回然后最后 – 首先发生什么
发布时间:2020-12-16 00:09:48 所属栏目:百科 来源:网络整理
导读:在C#.NET中,我们来看以下示例 [WebMethod]public int TakeAction(){ try { //Call method A Return 1; } catch (Exception e) { //Call method B Return 0; } finally { //Call method C }} 现在让我们说方法C是一个长期运行的过程. 在调用方法C之前,或在调
在C#.NET中,我们来看以下示例
[WebMethod] public int TakeAction() { try { //Call method A Return 1; } catch (Exception e) { //Call method B Return 0; } finally { //Call method C } } 现在让我们说方法C是一个长期运行的过程. 在调用方法C之前,或在调用/完成方法之后,调用TakeAction的客户端是否返回返回值? 解决方法
首先计算返回值,然后执行finally块,然后将控制权传递给调用者(带有返回值).如果finally块将更改返回值的表达式,则此排序很重要.例如:
Console.WriteLine(Foo()); // This prints 10 ... static int Foo() { int x = 10; try { return x; } finally { // This executes,but doesn't change the return value x = 20; // This executes before 10 is written to the console // by the caller. Console.WriteLine("Before Foo returns"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |