首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的表达式使用语句

C#中的表达式使用语句
EN

Stack Overflow用户
提问于 2014-10-03 00:01:19
回答 4查看 583关注 0票数 1

C#参考手册将使用语句的语法定义为:

代码语言:javascript
复制
using-statement:
   using   (    resource-acquisition   )    embedded-statement

resource-acquisition:
   local-variable-declaration
   expression

有人能给我提供一个用语句内部表达式的例子吗?传统的例子是使用变量声明。

EN

回答 4

Stack Overflow用户

发布于 2014-10-03 00:29:52

使用表达式的示例如下:

代码语言:javascript
复制
var stream = new MemoryStream();

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

//Stream is now disposed.

在这里,stream变量是在using之外声明的,但是由the包装。然后,它将在完成后释放stream变量。

这不是一种非常常见的模式,但对于您可能需要在资源被释放后对其执行其他操作的地方来说,它非常有用。

这可以与方法调用一起使用,基本上任何计算为IDisposable类型的表达式都可以使用。通常,在using语句中不能访问IDisposable并不那么有用。

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

代码语言:javascript
复制
@using(Html.BeginForm())
{
    @Html.TextBox("Name");
}
票数 3
EN

Stack Overflow用户

发布于 2014-10-03 00:21:43

举个例子:

代码语言:javascript
复制
//Create the file. 
using (FileStream fs = File.Create(path))
{
    AddText(fs, "This is some text");
    AddText(fs, "This is some more text,");
    AddText(fs, "\r\nand this is on a new line");
    AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");

    for (int i=1;i < 120;i++)
    {
        AddText(fs, Convert.ToChar(i).ToString());

    }
}

解释:

提供一个方便的语法,以确保正确使用IDisposable对象。

using语句调用块和块的对象上的Dispose方法。

即使抛出异常,它也将调用Dispose方法。

票数 1
EN

Stack Overflow用户

发布于 2014-10-03 01:03:16

要看的关键是8.5.1节中local-variable-declaration的定义。

局部变量声明声明一个或多个局部变量. 局部变量声明: 局部变量类型 局部变量类型: 类型 变量 局部变量声明器: 局部变量声明器 局部变量声明器 局部变量声明器: 标识符 标识符=等分局部变量初始化器 局部变量初始化器: 表达式 阵列初始化器

因此,local-variable-declaration可以表示为type identifer = expression。因此,using规范告诉您的是,您可以以var variableName = xxxxxxx的形式声明一个变量,也可以只使用xxxxxx部件本身。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26171464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档