c# - 如果在 using block 中调用 return,那么幕后操作的顺序是什么?

标签 c# return using

如果在其中调用 return,是否会命中 using block 的末尾?例如,

using( var ur = new UnmanagedResource() )
{
  if( SomeCondition == true ){
   return SomeReturnValue;
  }
}

SomeConditiontrue 时,UnmanagedResource 是否会在 return 之前从 using block 的末尾开始处理> 叫什么?在这种情况下发生的幕后操作顺序是什么?

最佳答案

我不知道“调用返回之前”是什么意思。 “调用”是函数发生的事情,没有称为“返回”的函数。当 return 语句出现在您的程序中时,它会导致几件事情发生:

  1. 计算并存储返回值表达式。
  2. 执行返回给调用者。

展开 usingfinally block 发生在步骤 1 和 2 之间。

关于c# - 如果在 using block 中调用 return,那么幕后操作的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12011198/

相关文章:

javascript : calculating and returning values after Image loaded

c - 在 C 中释放返回的变量

C++ 使用命名空间来避免长路径

c# - Asp.net 逐页发送信息表单

c# - 如何在撰写状态下打开 Outlook 邮件项目?

c - 函数返回值困惑,显式的 true 和 false 是什么?

syntax - 错误 : unsupported or misplaced expression using

c++ - 如果我注释掉换行符,为什么 'string' 会成为不合格的变量

c# - Unix 时间 - 纳秒?

c# - 计算 64 位(长,大)整数中的位数?