c# - C# using 语句中的表达式

标签 c# expression using-statement

C# 引用手册将using 语句的语法定义为:

using-statement:
   using   (    resource-acquisition   )    embedded-statement

resource-acquisition:
   local-variable-declaration
   expression

谁能给我提供一个在using 语句中使用表达式的例子。 常规示例使用变量声明。

最佳答案

使用表达式的例子如下:

var stream = new MemoryStream();

using(stream)
{
    //Perform operations with stream here.
}

//Stream is now disposed.

这里,stream 变量在 using 之外声明,但被 using 包装。然后它将在完成后处理 stream 变量。

这不是一个很常见的模式,但它对于处理资源后可能需要对其执行其他操作的地方很有用。

这可以与方法调用等一起使用。基本上可以使用任何求值为 IDisposable 类型的表达式。通常,无法访问 using 语句中的 IDisposable 没有多大用处。

我看到它以这种方式使用的唯一场景是在 ASP.NET MVC 中使用表单助手,例如。

@using(Html.BeginForm())
{
    @Html.TextBox("Name");
}

关于c# - C# using 语句中的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171464/

相关文章:

c# - DbSet.ToList() 播种其他 dbset

c# - 在 C# 7 本地方法中重新引入新的泛型参数是一个好习惯吗?

c - 优先级在 C 表达式求值中的作用

c# - 如何使用 Expression.Add 对 double 和 int 求和?

namespaces - 设置 ReSharper 将 'using' 导入放在命名空间之外

C# "Using"语法

c# - Automapper 表达式错误 : Null Reference/Error Mapping Types and ReverseMap

javascript - "(\' ' + 元素 + '\' )"是什么意思?

c# - 用 using(...) { } 语句包装 Application.Run(new Form()) 是否安全?

C# 从子文件夹中获取 DLL