命名空间和文件夹关系

时间:2009-08-03 20:21:45

标签: c# asp.net visual-studio-2008 resharper

好吧,我猜名称空间必须与它们的嵌套文件夹相同吗?我不断收到错误,说命名空间应该是xxx.yyy.zzz。

示例:

Folder1
    Folder2
        MyControl.cs

我的命名空间定义为:

namespace CustomControls
{

...

}

所以编译器抱怨它必须是名称空间Folder1.Folder2

那么与文件结构和命名空间有直接关系吗?你被迫与这些关系密切相关吗?

4 个答案:

答案 0 :(得分:6)

这是Resharper通常报告的警告。要从Resharper的文件夹树中排除文件夹 - 名称空间比较,请转到VS中的文件夹属性列表,并将Namespace Provider设置为 false

答案 1 :(得分:3)

我不知道ASP.NET是否有一些特殊的规则(由于自动编译),但当然在C#本身没有规则表示你必须组织你的文件夹以匹配你的命名空间。从可维护性的角度来看,这是一个好主意。

你确定它是编译器,而不仅仅是ASP.NET(甚至是ReSharper?)的另一部分抱怨吗?

答案 2 :(得分:1)

没有。无论文件夹结构如何,您都可以拥有所需的任何命名空间树。 Visual Studio使您可以轻松地根据文件夹结构自动创建名称空间,因此您无需自己维护名称空间树。但不要以任何方式强迫它形成或形成。

您获得的错误与编译器没有任何关系。

您也没有任何标记说明您正在使用的Dev IDE。

答案 3 :(得分:0)

这必须是来自ReSharper的错误,而不是来自Visual Studio的编译器。现在我实际上遇到了相反的问题:我试图让VS2008根据我的嵌套文件夹结构自动命名我的命名空间,如Folder1.Folder2.MyProjectName,但它坚持命名为“flat”MyProjectName !正如Jon所说,C#本身与命名空间命名法无关。

相关问题