提问人: 提问时间:10/7/2021 更新时间:10/12/2021 访问量:1509
最佳做法是让命名空间与找到它的项目同名?[已结束]
Is it best practice for a namespace to have the same name as the project in which it is found in? [closed]
问:
假设我的解决方案中有以下结构:
MySolution -> ProjectA -> ClassA.cs
默认情况下,项目 ProjectA 中第一个命名空间的名称为 。ProjectA
namespace ProjectA
{
public class ClassA
{
// body
}
}
项目中第一个命名空间的名称是否与找到它的项目同名?
还是应该更改第一个命名空间的默认名称?
答:
1赞
Tech Inquisitor
10/7/2021
#1
是的,也不是。与项目同名的顶级命名空间对于许多项目来说很常见,并且完全没问题。在处理使用该命名空间中的类的代码时,这有助于轻松识别源文件在项目结构中的位置。
但是,如果您正在编写计划发布的库,请注意 Microsoft 的命名空间名称框架设计指南:
DO 在命名空间名称前面加上公司名称,以防止来自不同公司的命名空间具有相同的名称。
和
务必使用 PascalCasing,并用句点分隔命名空间组件(例如,Microsoft.Office.PowerPoint)。
因此,如果你的项目被命名为 ,你的命名空间将是 。Foo
MyCompany.Foo
评论
0赞
10/7/2021
但是从技术上讲,如果我的项目被命名为“Foo”,那么顶级命名空间的名称不就是“Foo”而不是“MyCompany.Foo”吗?
0赞
Tech Inquisitor
10/7/2021
如果您不打算发布它,那也没关系。(或者,如果项目名称非常唯一。
1赞
10/7/2021
@TechInquisitor 好的。我想我要问的是,我如何用公司名称作为项目顶级命名空间名称的前缀?唯一合理的方法是,如果我的项目被命名为“MyCompany.Foo”,但在您的示例中,该项目被简单地命名为“Foo”。这就是为什么我质疑如果项目没有被命名为“MyCompany.Foo”,“MyCompany”如何成为顶级命名空间名称“MyCompany.Foo”的一部分,因为顶级命名空间(默认情况下)从项目的名称中获取它的名字。
1赞
10/7/2021
@TechInquisitor 但是,如果项目名称中没有包含公司名称“MyCompany”,那么公司名称“MyCompany”如何包含在顶级命名空间的名称中。你的例子是不正确的。因为顶级命名空间从项目中获取其名称。
1赞
10/8/2021
@TechInquisitor对我的上述评论有任何想法将不胜感激。希望很快收到您的来信。谢谢:)
评论
namespace