1

using 语句的作用是什么?真的需要吗?

    using (MyWebservice x = new MyWebservice())
    {
    //random code
    }
4

4 回答 4

3

http://msdn.microsoft.com/en-us/library/yh598w02.aspx

using 语句可确保调用 Dispose,即使在调用对象上的方法时发生异常也是如此。您可以通过将对象放在 try 块中,然后在 finally 块中调用 Dispose 来获得相同的结果;事实上,这就是编译器翻译 using 语句的方式。

于 2010-02-11T19:31:06.103 回答
1

不,不需要。我们的网络服务专家使用它只是为了确保您注意。

于 2010-02-11T19:31:37.587 回答
1

它是一次性模式的语法糖。编译后,它会扩展为生成的 IL 代码中的完整模式。

您在内部初始化的对象将在超出范围时调用()it方法。Dispose这就是为什么只有实现的类IDisposable才能使用它。

请参阅有关它的MSDN 文章

于 2010-02-11T19:32:16.100 回答
0

要回答您的问题“using 语句有什么作用?”,这里有一些示例来说明该using语句的更常见用法,以确保其他答案中引用的处置:

确保在我们使用完 StringWriter 和 XmlTextWriter 后它们被释放(关闭):

using (StringWriter sw = new StringWriter(sb))
        using (XmlTextWriter xw = new XmlTextWriter(sw))
        {
            WebPartManager1.ExportWebPart(partToExport, xw);  
        }

确保数据库连接和命令对象都被释放:

DataTable dt = new DataTable();

using (SqlConnection connection = new SqlConnection("ConnectionString"))
using (SqlCommand command = new SqlCommand())
{
    command.Connection = connection;
    command.CommandText = "SELECT * FROM Customers";

connection.Open();
using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
{
    dt.Load(reader);
}
}
于 2010-02-11T19:41:58.100 回答