关于命名空间声明中的c#:“using”语句位置

“using” statement locations within namespace declarations

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Should Usings be inside or outside the namespace

我支持一些代码,这些代码通常在名称空间声明中包含所有的using语句。这让我有点不舒服,但我不知道这是否应该引起关注。我想不出一个直接的问题,除了它违背了通常的惯例。

以下方面有什么问题吗?

1
2
3
4
5
6
7
8
9
namespace myProject.controls
{
    using System;
    using System.Collections;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

而不是更广泛使用:

1
2
3
4
5
6
7
8
9
10
using System;
using System.Collections;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace myProject.controls
{


唯一的区别在于范围界定。在第一种情况下,using声明的作用域在命名空间声明中,而在同一文件中的其他命名空间声明中,这些声明在命名空间声明之外不可用。在第二种情况下,声明在整个文件的范围内。


这里没有什么可担心的;事实上,Stylecop默认情况下建议使用第一个示例(在命名空间声明中使用using语句)。


Location of the using statement
affects the scope of the references
within the file.

我想不出任何可以"保证"将其限制在较小范围内的情况。不过,我更愿意遵守惯例——或者详尽地评论——只是为了确保"下一个人"不必猜测我的意图。

可能这个链接会详细回答你的问题

  • C-使用语句的位置