1

我有以下项目:

CompanyName.SystemName.ProjectName

与它一起使用时,Using它看起来像一个命名空间,但事实并非如此。

4

3 回答 3

7

是的,C# 使用相同的语法 ( .) 来表示:

  • 命名空间遍历
  • 嵌套类型遍历(实际上+是内部类型语法)
  • 成员访问(字段/属性/方法/常量/枚举/等)
  • 作为数字文字中的小数点

然而,这通常根本不是问题......

于 2012-04-24T06:06:51.387 回答
5

您声称它不是命名空间,但我强烈怀疑它. 默认情况下,当您创建新类时,Visual Studio 会从与项目名称和任何嵌套文件夹匹配的命名空间开始。因此,使用项目名称,CompanyName.SystemName.ProjectName我希望的 C# 文件看起来像:

using System; // etc

namespace CompanyName.SystemName.ProjectName
{
    public class SomeClass
    {
    }
}

那时,CompanyName.SystemName.ProjectName绝对一个命名空间,我完全希望using在代码中尝试使用SomeClass.

是什么让您认为它不是命名空间?

于 2012-04-24T06:11:51.257 回答
4

只要是有效的文件名,您就可以以任何您喜欢的方式命名您的项目。通常项目名称与该项目的根命名空间匹配,但这不是硬性规则。

我更喜欢遵循该命名约定,因为它可以更轻松地导航解决方案(如果我知道名称空间,我就知道要在哪个项目中查找)并且它是 VS 中的默认设置。如果您希望默认命名空间与项目名称不同,则必须更改设置。默认情况下,ReSharper 会更进一步,并为项目的子文件夹强制执行命名约定。

于 2012-04-24T06:09:08.130 回答