1

我注意到在很多 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()”。但是还有什么其他的优势呢?除了短手,真的有什么优势吗?

有什么缺点吗?

4

4 回答 4

3

除了使代码更具可读性之外,我唯一能想到的是:

using Num = System.Numerics.BigInteger;

为不同命名空间中的特定类提供短名称和自定义名称。还可能有助于避免在不同名称空间中具有相同名称的类之间的混淆。

于 2012-04-21T02:46:01.403 回答
2

正如您提到的,这实际上只是“速记”。你给的例子:

System.Xml.XPath.XElement

很好地证明了这一点。您正在寻找与XElement. 就这样。完全合格的参考的其余部分只是噪音。没有理由在整个代码中一遍又一遍地编写它。

它只是编写更清晰、更简洁和更具表现力的代码的一种措施,它专注于逻辑的有意义的部分,而不是编译器的结构脚手架。

于 2012-04-21T02:43:44.867 回答
1

命名空间的想法是限定类型,这提供了一种方便的方法。将您的 usings 包含在文件顶部的一个优点是简写,通常可以转化为更具可读性的代码。但缺点是,如果两个命名空间中的类型发生冲突,您最终可能会遇到命名空间冲突。在这种情况下,您可以查看创建别名。

于 2012-04-21T02:40:32.997 回答
0

using 语句提供了关于此代码正在使用什么以及提供对命名空间成员的速记访问的潜行峰值。通常,当我查看一个新文件时,我会根据包含的内容将某些 API 排队到速记内存中。(在与草率的程序员打交道时,这并不总是有效。)

于 2012-04-21T02:45:42.663 回答