Entfernen von nicht verwendeten Usings

Mit der Option Nicht verwendete Usings entfernen der Benutzeroberfläche von Visual Studio werden using-Direktiven, using-Aliase und extern-Aliase, die nicht im Quellcode verwendet werden, entfernt. Es gibt zwei Möglichkeiten, die Operation aufzurufen:

  • Hauptmenü - Zeigen Sie im Menü Bearbeiten auf IntelliSense, dann auf Usings organisieren, und klicken Sie dann auf Nicht verwendete Usings entfernen.

  • Kontextmenü - Klicken Sie mit der rechten Maustaste in den Code-Editor, zeigen Sie auf Organisieren Usings, und klicken Sie dann auf Nicht verwendete Usings entfernen.

    Tipp

    Wenn Sie den Befehl Nicht verwendete Usings entfernen für Quellcode ausführen, der nicht erstellt werden kann, werden möglicherweise einige erforderliche using-Direktiven entfernt.

Im folgenden Beispiel ist das Ergebnis dargestellt, dass beim Ausführen von Nicht verwendete Usings entfernen für den Quellcode erzielt wird.

Vorher

Nachher

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");
        }
    }
}

Im vorangehenden Beispiel wird im Quellcode später nur System verwendet. Die anderen using-Direktiven, einschließlich der doppelten System-Using-Direktive, werden entfernt.

Hinweise

Bedingte Präprozessordirektiven

Nicht verwendete Usings entfernen entfernt nur nicht verwendete Direktiven und Aliase, die sich im aktiven Block befinden. Dieses Verhalten wird im folgenden Beispiel veranschaulicht:

Vorher

Nachher

#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);

}

}

}

Im vorangehenden Beispiel werden System.Text und System.Linq nicht verwendet. Es wird jedoch nur System.Linq entfernt, da sich System.Text nicht im aktiven Block befindet.

Kommentare

Mit Nicht verwendete Usings entfernen wird nur dann ein Kommentar entfernt, wenn sich der Kommentar zwischen den Token einer Direktive oder eines Alias befindet, die bzw. der entfernt wird. Davor oder dahinter aufgeführte Kommentare sind davon nicht betroffen. Dieses Verhalten wird im folgenden Beispiel veranschaulicht:

Vorher

Nachher

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");

}

}

}

Im vorhergehenden Beispiel wird System.Linq entfernt. Nur die Kommentare zwischen den Token der Direktive werden entfernt.

Siehe auch

Referenz

Erweitert, C#, Text-Editor, Dialogfeld "Optionen"

using-Direktive (C#-Referenz)

extern-Alias (C#-Referenz)

Konzepte

Organisieren mit Anweisungen

Sortieren von Usings