Visual Studio项目名称有句点可以吗?

Nig*_*iri 0 .net c#

我有以下项目:

CompanyName.SystemName.ProjectName
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ell 6

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

  • 名称空间遍历
  • 嵌套类型遍历(实际上+是内部类型语法)
  • 成员访问(字段/属性/方法/ consts/enums/etc)
  • 作为数字文字中的小数点

然而,这通常不是一个问题......


Run*_* FS 5

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

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


Jon*_*eet 5

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

using System; // etc

namespace CompanyName.SystemName.ProjectName
{
    public class SomeClass
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

在这一点上,CompanyName.SystemName.ProjectName绝对一个命名空间,我完全期望using在代码中尝试使用SomeClass.

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