20

两者有什么区别?

4

1 回答 1

49

假设您正在谈论 .NET(与 Visual Studio 相关),那么根命名空间就是您在 Visual Studio 项目中创建的每个类都将成为其中的一部分。它也是在项目文件夹中创建类时自动分配的任何子命名空间的基础。

因此,使用 ACMECorp.Bombs 的基本命名空间,您的所有类都将成为 ACMECorp.Bombs 命名空间的一部分,因此 GravityBomb 类的全名为 ACMECorp.Bombs.GravityBomb。在名为 GuidedBombs 的项目文件夹中创建的名为 FlyingBomb 的类的完整类型名称为 ACMECorp.Bombs.GuidedBombs.FlyingBomb。

程序集名称只是您的代码将被编译为可执行文件或库等的编译文件的名称......

我经常看到的一个问题是您的程序集名称是否应该与根命名空间相同并且也与您的项目名称相同(再次在 Visual Studio 中)。我曾经的想法是,您应该有一个与程序集名称相同的项目名称,与根名称空间相同,就像 Visual Studio 的默认设置一样。但是,如果您需要进行一些重大的重构和重命名,这可能会让人很头疼,尤其是在您使用源代码控制的情况下(因为您应该开始重命名项目文件夹)。

我的建议是您的项目名称只是项目内容的描述性名称。您的程序集名称应包含技术区域和组件描述,或公司名称和技术区域(取决于您的偏好),并且您的根命名空间应符合 Microsoft 命名标准的描述,因此:

项目:生物识别设备访问

程序集:BiometricFramework.DeviceAccess.dll

命名空间:ACME.BiometricFramework.DeviceAccess

给你一些参考资料:

http://blogs.msdn.com/brada/archive/2003/04/19/49992.aspx

http://msdn.microsoft.com/en-us/library/ms229026.aspx

http://msdn.microsoft.com/en-us/library/ms229048.aspx

于 2008-11-24T13:33:29.523 回答