我注意到在许多C#程序中,人们会使用大量的东西列出:
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml.Linq;
using System.Xml.XPath;
using System.Net;
using System.Web;
做这样的事情有什么好处?我的意思是我知道它可以让你简写一些函数,所以我可以放“XElement.Parse()”而不是“System.Xml.XPath.XElement.Parse()”。但还有什么其他优势呢?除了空手之外还有什么优势吗?
有任何缺点吗?
答案 0 :(得分:3)
除了使代码更具可读性之外,我唯一能想到的就是:
using Num = System.Numerics.BigInteger;
为不同命名空间中的特定类提供短名称和自定义名称。 可能还有助于避免在不同名称空间中具有相同名称的类之间产生混淆。
答案 1 :(得分:2)
正如你所提到的,这真的只是“速记”。你给出的例子:
System.Xml.XPath.XElement
很好地展示了它。您正在寻找与XElement
互动。就这样。完全合格的参考资料的其余部分只是噪音。没有理由在整个代码中反复写出来。
这只是编写更清晰,更简洁,更具表现力的代码,衡量逻辑的有意义部分,而不是编译器的结构支架。
答案 2 :(得分:1)
命名空间的想法是限定类型,这提供了一种方便的方法。将您的使用包含在文件顶部的优点是简写,通常转换为更易读的代码。但缺点是,如果两个命名空间中的类型发生冲突,您最终可能会出现冲突的命名空间。在这种情况下,您可以考虑创建一个别名。
答案 3 :(得分:0)
using语句提供了关于此代码使用的内容的高峰,以及提供对命名空间成员的简写访问。通常,当我查看新文件时,我会根据所包含的内容将某些API排队到速记内存中。 (在处理草率的程序员时,这并不总是有效。)