这可能是一个愚蠢的问题,但由于我无法自己给出答案,我会在这里提出。
让我们有一个我们想要在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))
{
}
如果没有任何技术原因 - 这是一个基于意见的决定 - 我们应该更喜欢第二种方法的第一种方法,反之亦然,请告诉我,以便删除我的帖子。
答案 0 :(得分:8)
这取决于您是否需要在using
- 语句范围之外的那些变量。如果是这样,你无论如何都要在外面宣布它们。如果没有,请在using
中声明它们。
为什么呢?这完全取决于可读性,故障安全性和重构性。
这不仅适用于using
,而且适用于范围和变量声明。阅读: