命名空间与所在项目同名是否是最佳实践?

Is it best practice for a namespace to have the same name as the project in which it is found in?

假设我的解决方案具有以下结构:

我的解决方案 -> 项目 A -> ClassA.cs

默认情况下,项目ProjectA中第一个命名空间的名称是ProjectA

namespace ProjectA
{
    public class ClassA
    { 
        // body
    }
}

项目中第一个命名空间的名称与所在项目同名是best/common惯例吗?

或者我应该更改第一个命名空间的默认名称吗?

是也不是。与项目同名的顶级命名空间很常见,对许多项目来说都很好。在处理使用该命名空间中的 类 的代码时,这有助于您轻松识别源文件在项目结构中的位置。

但是,如果您正在编写打算发布的库,请注意 Microsoft 的 Names of Namespaces 框架设计指南:

DO prefix namespace names with a company name to prevent namespaces from different companies from having the same name.

DO use PascalCasing, and separate namespace components with periods (e.g., Microsoft.Office.PowerPoint).

因此,如果您的项目名为 Foo,您的命名空间将为 MyCompany.Foo