命名空间非常酷:使用它们,您可以组织您的库,并且可以避免名称冲突。
嗯,这就是意图,我想。我认为很多人并没有像应该使用它那样使用它......每天,我都会看到 95 个字符长的命名空间散布着代码并隐藏了真正重要的信息。
下面是一个例子:
BigCorp.FrontOffice.MyApp.MySubDomain.Controllers.MyControllerXYZ xyzController = new
BigCorp.FrontOffice.MyApp.MySubDomain.Controllers.MyControllerXYZ(
BigCorp.FrontOffice.MyApp.MySubDomain.Const.MyValue1,
BigCorp.FrontOffice.MyApp.MySubDomain.Const.MyValue2 );
你有这个意图吗?不,当然。它是:
MyControllerXYZ xyzController = new MyControllerXYZ( MyValue1, MyValue2 );
非常简单,没有命名空间,但无法理解...
那么,你如何使用命名空间?您对它们的最佳做法是什么?我们应该使用命名空间还是内部类?您的主项目使用了多少个命名空间? (目前,我的正在使用 210 个接口(interface)(!)和更多的命名空间——无法维护!)
在此先感谢您的回答,
西尔万。
最佳答案
这是一个问题帖子中的很多问题!
1) 为什么要使用命名空间?
正如您在问题中所述,它们是代码的一种组织方法。确实没有“一种方法”可以组织代码,因此通常命名的对象不会给您带来问题。创建一个类库可能使用与另一个库完全不同的机制。
2)我应该如何使用命名空间?
我更喜欢微软如何对其命名空间进行分组( see 3.5 name space map! )。按功能、继承等分组!命名空间只是另一个要使用的组织工具。话虽如此,我错在少即是多。正如您所说,命名空间可以隐藏代码,也可以隐藏其他开发人员的功能代码(哪个命名空间具有我需要的 gridrow 类?Grid 或 Row?)。我尝试仅在需要时才使用命名空间。叫我马虎,但到目前为止它对我有用!
总结:避免复杂性。不要过度分类您的代码。
关于namespaces - 你如何使用命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441289/