之前开发一直是把using写在namespace的外面,如:
using system.text;
using xxx;
namespace xxx
{
}
最近看到很多ms自己的sample里的代码,都是把using写在namespace里,如:
namespace
Microsoft.ServiceBus.Samples
{
using System;
using System.ServiceModel;
。。。。。。
}
这两种写法有什么实质区别么?后面一种写法是否有特别的好处,哪怕只是格式上的。
Using写在Namespace中这是由于MS开发团队使用了他们自己的代码管理软件工具造成的,其中一项就是强制引用命名控制在Namespace内
首先一点,如果你是引用的外部命名空间,可以写到类的前面,这样合法,也就是在使用之前引用,这符合C语法先定义后使用的原则。如果你在类内引用则会告诉你标记无效。如果是在类后面,会提示using子句必须位于所有其它命名空间元素之前(外部别名声明除外)。如果你在使用命名空间之后才引用肯定是用不了的。要说好处,我说没有,最好是把这些都写到前面
这个应该与程序域有关,写在类里面,其他的类就无法引用.
是的,你引用namespace的位置,决定了其namespace里类的可见性和有效性。作用域的差别。最外面显然本程序集里都可以使用。内部的话,使用的范围取决于你放的位置。只严格的限制就是直接在类引用前设置namespace,比如system.data.dataset.
一般写在外面,一般情况。