我正在设计一个名称空间来容纳一组类,这些类将处理几个不同应用程序的用户相关任务。 (登录,验证等)
问题是命名空间将被称为Fusion.User
但是它需要在该命名空间中有一个类来调用User
。
您是否应该拥有与命名空间同名的类?或者我在这里采取了错误的做法?
答案 0 :(得分:1)
以与名称空间(包)相同的方式命名类可能会导致认为类是包的核心。但是,如果我得到正确的话,用户只是你案件中的一个数据对象。
据我所知,你有两个选择:
答案 1 :(得分:1)
命名空间是 Fusion.User
班级全名将是 Fusion.User.User
将它们保持不同是一种很好的做法,因为
在某些情况下看起来也很难看,就像我们使用两个用户一样。
使用Fusion;
命名空间xyz {
公共类测试
{
User.User userObject {get; set;}
}
} <登记/>
所以更好的选择是使用不同的名称
答案 2 :(得分:1)
有些情况下使用相同名称会导致问题。立即想到的是在使用WCF服务时。当我最近在命名空间“companyName.someBehaviour”中使用名为“someBehaviour”的类来执行此操作以使用“MyService”时,编译器禁止我说someService在someBehaviour命名空间中不存在。将类名更改为不同的(并且非常有用)解决了这个问题并允许我编译程序集。
答案 3 :(得分:1)
答案 4 :(得分:0)
我可能会将名称空间称为“usertasks”以避免混淆。您将必须定期使用命名空间限定内部类,以避免混淆编译器。