所以我注意到我可以在一个类的多个命名空间之间进行选择。
我的类(class)是 Extensions
我可以使用以下三个命名空间之一:
using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;
为什么呢?我知道所有这些命名空间都有不同的方法/类/接口(interface)/枚举/委托(delegate)。
但为什么没有类似的东西
using System.Xml.Everything;
?
那些不同的方法/类/接口(interface)/枚举/委托(delegate)会相互干扰吗?
还是一切都可以更轻松地阅读和管理?
或者这两个原因(甚至更多)?还是我对所有事情都完全错了? :D
我还有一个问题
System.Xml.Linq // Assemblies: System.Xml.XDocument.dll, System.Xml.Linq.dll, netstandard.dll
和
System.Xml.Schema // Assemblies: System.Xml.Linq.dll, netstandard.dll, System.Xml.XDocument.dll
具有相同的三个程序集。这里是什么意思? Linq 和 Schema 实际上是否相同(具有相同的类/等)?
最佳答案
命名空间的目的是声明一个包含一组相关对象的范围。
using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;
以上 3 个命名空间包含具有不同职责的不同类。
System.Xml.XPath
System.Xml.Schema
System.Xml.Linq
他们可能都引用了类似的程序集,但他们需要这样做才能完成他们的任务。这就是我们首先拆分代码的原因。 可重用性 .
关于.net - 为什么一个类有多个命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53726839/