移除未使用的 Using

Visual Studio 用户界面中的**“移除未使用的 Using”**选项用于移除源代码中未使用的 using 指令、using 别名和 extern 别名。 调用该操作有两种方式:

  • 主菜单:在**“编辑”菜单上指向“IntelliSense”,再指向“组织 Using”,然后单击“移除未使用的 Using”**。

  • 上下文菜单:右击代码编辑器中的任意位置,指向**“组织** Using”,再单击**“移除未使用的 Using”**。

    提示

    如果对未生成的源代码执行“移除未使用的 Using”,则可能会移除某些必需的 using 指令。

下面的示例显示了对源代码执行**“移除未使用的 Using”**所生成的结果。

使用之前

使用之后

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("test");
        }
    }
}
using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("test");
        }
    }
}

在前面的示例中,只有 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。 只会移除位于指令标记之间的注释。

请参见

参考

“选项”对话框 ->“文本编辑器”->“C#”->“高级”

using 指令(C# 参考)

外部别名(C# 参考)

概念

组织 Using 语句

对 Using 排序