使用语句最佳实践

时间:2014-08-01 09:23:30

标签: c# using

这可能是一个愚蠢的问题,但由于我无法自己给出答案,我会在这里提出。

让我们有一个我们想要在http处理程序中使用的模块(Web应用程序是使用ASP.NET用C#编写的),并让这个模块实现IDisposable接口。然后一个常见的方法是 使用以下模块:

using(var module = new ModuleName(param1, param2, param3))
{

}

最好将任何代码放在我们将仅在using语句的主体内部或之前使用的变量中。在代码方面:

第一种方法或第二种方法是否更好(以及为什么):

第一种方法

using(var module = new ModuleName(param1, param2, param3))
{
    int a = Request.GetParam<int>("aNumber");
    string b = Request.GetParam<string>("bString");
    // and other parameters contained to the http request
}

第二种方法

int a = Request.GetParam<int>("aNumber");
string b = Request.GetParam<string>("bString");
// and other parameters contained to the http request

using(var module = new ModuleName(param1, param2, param3))
{

}

如果没有任何技术原因 - 这是一个基于意见的决定 - 我们应该更喜欢第二种方法的第一种方法,反之亦然,请告诉我,以便删除我的帖子。

1 个答案:

答案 0 :(得分:8)

这取决于您是否需要在using - 语句范围之外的那些变量。如果是这样,你无论如何都要在外面宣布它们。如果没有,请在using中声明它们。

为什么呢?这完全取决于可读性,故障安全性和重构性。

这不仅适用于using,而且适用于范围和变量声明。阅读: