类应该与命名空间名称相同吗?
我正在设计一个名称空间来容纳一组类,这些类将处理用户有关几个不同应用程序的相关任务。 (注册,认证等)类应该与命名空间名称相同吗?
的问题是命名空间将被称为Fusion.User
但随后要求该命名空间是有道理调用User
类。
如果你有一个与命名空间同名的类?或者我在这里采取了错误的做法?
命名方式与命名空间(包)相同的类可能会导致认为类是包的核心。但是,如果我得到它正确的用户只是你的情况下的数据对象。
至于我看你有2种选择:
- 名称的命名空间不同的例如Fusion.Security
- 为类名指定使用后缀,例如UserDTO,UserAction等
我喜欢'Fusion.Security'的建议 - 也许我的想法太窄了 – 2009-11-26 14:02:19
我可能会调用名称空间'usertasks'来避免任何混淆。您将不得不定期使用命名空间限定内部类,以避免混淆编译器。
的命名空间是Fusion.User
类的全名是Fusion.User.User
这是一个很好的做法,使他们不同,因为
- 它避免混淆开发商
-
在这里我们使用两个用户的情况下,它也看起来很丑。
using Fusion;
命名空间XYZ {
公共类测试
{
User.User userObject {获得;设置;}}
}
所以,更好的选择是使用不同的名称
有些情况下使用的情况下,同名会导致问题。立即想到的一点是在使用WCF服务时。当我最近在命名空间“companyName.someBehaviour”的一个名为“someBehaviour”的类中使用了“MyService”时,编译器对我说,MyService不存在于someBehaviour命名空间中。将类名更改为不同的(并且非常有用)解决了这个问题,并允许我编译程序集。
的可能重复[如何避免一类具有相同的名称和它的命名空间,如Technology.Technology?](http://stackoverflow.com/questions/1158092/如何避免具有相同名称的类和命名空间,如技术) – nawfal 2013-02-25 09:27:49