移除未使用的 Using
Visual Studio 用户界面中的**“移除未使用的 Using”**选项用于移除源代码中未使用的 using 指令、using 别名和 extern 别名。 调用该操作有两种方式:
主菜单:在**“编辑”菜单上指向“IntelliSense”,再指向“组织 Using”,然后单击“移除未使用的 Using”**。
上下文菜单:右击代码编辑器中的任意位置,指向**“组织** Using”,再单击**“移除未使用的 Using”**。
提示
如果对未生成的源代码执行“移除未使用的 Using”,则可能会移除某些必需的 using 指令。
下面的示例显示了对源代码执行**“移除未使用的 Using”**所生成的结果。
使用之前 |
使用之后 |
---|---|
|
|
在前面的示例中,只有 System 将在以后用于源代码中。 其他 using 指令(包括重复的 System using 指令)将被移除。
备注
条件预处理器指令
**“移除未使用的 Using”**仅移除活动块中未使用的指令和别名。 下面的示例阐释了这一点:
使用之前 |
使用之后 |
---|---|
#define DEBUG #if DEBUG using System; using System.Collections.Generic; using System.Linq; #else using System.Text; #endif namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> myList = new List<int> { 1, 2, 3 }; Console.WriteLine(myList); } } } |
#define DEBUG #if DEBUG using System; using System.Collections.Generic; #else using System.Text; #endif namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> myList = new List<int> { 1, 2, 3 }; Console.WriteLine(myList); } } } |
在上例中,既未使用 System.Text,也未使用 System.Linq。 但是,由于 System.Text 不在活动块中,因此只会移除System.Linq。
注释
只有注释位于指令或别名的标记之间时,**“移除未使用的 Using”**才会移除注释。 出现在标记之前或之后的注释都不受影响。 下面的示例阐释了这一点:
使用之前 |
使用之后 |
---|---|
using System; /* Comment before remains */ using /* Comment between removed */ System.Linq; // Comment after remains namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("My Example"); } } } |
using System; /* Comment before remains */ // Comment after remains namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("My Example"); } } } |
在上面的示例中移除了 System.Linq。 只会移除位于指令标记之间的注释。