“使用”到底有什么用? C# 中的块?

发布于 2024-11-16 17:36:34 字数 570 浏览 2 评论 0原文

可能的重复:
什么是 C# using 块以及原因我应该使用它吗?

using block 的意义是什么?为什么我应该在 using 块中编写代码?

例如:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString);
using (con)
{
    con.Open();            
    //
    // Some code
    //
    con.Close();
}

这是使用 using 语句 的正确方法吗?

Possible Duplicate:
What is the C# Using block and why should I use it?

Whats the significance of using block? Why should i write my code inside using block?

eg:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString);
using (con)
{
    con.Open();            
    //
    // Some code
    //
    con.Close();
}

Is this the right way of using using statement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

南七夏 2024-11-23 17:36:34

usingIDisposable 接口配合使用。

它保证在退出作用域之前,将在 using 子句中对对象调用 Dispose 方法。

除此之外,没有其他原因。

using goes together with the IDisposable interface.

It guarantees that before exiting the scope the Dispose method would be called on the object in the using clause.

There is no other reason than that.

金橙橙 2024-11-23 17:36:34

using (x) {...} 只不过是语法糖为了

try
{
   ...
}
finally
{
  x.Dispose();
}

using (x) {...} is nothing but syntactic sugar for

try
{
   ...
}
finally
{
  x.Dispose();
}
橘香 2024-11-23 17:36:34

定义是:“定义一个范围,在该范围之外将处理一个或多个对象。”
有关详细信息,请参阅 MSDN

The definition is: "Defines a scope, outside of which an object or objects will be disposed."
More information can be found in the MSDN.

晚风撩人 2024-11-23 17:36:34

当你使用一个对象时
封装任何资源,你必须
确保当你完成后
对象,对象的 Dispose
方法被调用。这可以做到
更容易使用 using 语句
在 C# 中。

更多信息请点击这里:
http://www.codeproject.com/KB/cs/tinguusingstatement.aspx

When you are using an object that
encapsulates any resource, you have to
make sure that when you are done with
the object, the object's Dispose
method is called. This can be done
more easily using the using statement
in C#.

More info here:
http://www.codeproject.com/KB/cs/tinguusingstatement.aspx

戏剧牡丹亭 2024-11-23 17:36:34

using 语句可确保即使在调用对象方法时发生异常,也会调用 Dispose(IDisposable)。在您的示例中,SqlConnection 将在 using 块的末尾关闭并处置。

您的示例不是定义 using 块的常用方法,因为您可能会在 using 块之后意外地重用 con。

试试这个:

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString))
{
    con.Open();            
    //
    // Some code
    //
}

The using statement ensures that Dispose (of IDisposable) is called even if an exception occurs while you are calling methods on the object. In your example the SqlConnection will be closed and disposed at the end of the using block.

Your example is not the common way of defining a using block, because you could accidentally reuse con after the using block.

Try this:

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString))
{
    con.Open();            
    //
    // Some code
    //
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文