所以我注意到我可以为一个类在多个命名空间之间进行选择。
我的班级是Extensions
,我可以使用以下三个命名空间之一:
using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;
为什么会这样?我知道所有这些命名空间都有不同的方法/类/接口/枚举/委托。
但是为什么没有类似的东西
using System.Xml.Everything;
?
那些不同的方法/类/接口/枚举/代表会互相干扰吗?
还是这样,以便可以更轻松地读取和管理所有内容?
还是两个原因(甚至更多)?还是我对所有事情完全错了? :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实际上是相同的(具有相同的类/等)吗?
答案 0 :(得分:1)
命名空间的目的是声明一个包含一组相关对象的范围。
using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;
以上3个命名空间包含具有不同职责的不同类。
他们可能都引用了相似的程序集,但需要它们来完成其任务。这就是我们首先拆分代码的原因。 可重用性。