问题描述
- c#命名空间的问题不大懂
- 想问大神们一个关于命名空间的问题
using system.net;
using system.net.socket;这两个有什么联系呢? 第二个是不是包含在第一个里面,为啥引用了第一个还要在用第二个。谢谢
解决方案
打个比方,一幢楼每个单元留下都有门锁,每家也都有自己家的门锁,回家的时候,打开了单元门,还需要打开自己家的门才能进入你家。
解决方案二:
using system.net;引用该包下的所有类,但不包括子包socket里的类
using system.net.socket;引用该包下的所有类
解决方案三:
用了using system.net;
你直接使用net下面的东西都可以,但是使用socket下面的东西,就需要带上socket命名空间
如果加上了using system.net.socket;,那么你也可以直接使用socket下面的东西了。
解决方案四:
简单的可以这么说,如果自己了解要用的类在具体包含,就直接定位到所在包(可能会是子包)进行使用,如果只知道大体范围建议使用最上面的那种导包方式,唯一不同的是第一种是在程序运行以后整包扫描,第二种大且不用
解决方案五:
你可以只包含 using system.net,但 调用 socket 中的对象时,就必须写成 socket.对象 才行。
解决方案六:
如果想省事可以这样写 using system.net.*
解决方案八:
using system.net;
using system.net.socket;
using的时候可以看作两个独立的命名空间,没有任何联系。
namespace system.net
namespace system.net.socket
namespace则不一样,namespace system.net.socket 命名空间下可以不using system.net; 就可以直接用system.net的类,而namespace system.net命名空间下则必须using system.net.socket才可以使用system.net.socket的类,这里就会存在层次的区别。