using-Anweisung (C#-Referenz)

Die using-Direktive hat drei Verwendungszwecke:

  • Sie ermöglicht die Verwendung von Typen in einem Namespace, sodass Sie die Verwendung eines Typs in diesem Namespace nicht qualifizieren müssen:

    using System.Text;  
    
  • Ermöglicht den Zugriff auf statische Member eines Typs, ohne den Zugriff mit dem Typnamen zu qualifizieren.

    using static System.Math;  
    

    Weitere Informationen finden Sie unter using static-Direktive (C#-Referenz).

  • Erstellen eines Alias für einen Namespace oder Typ. Dies wird als using-Aliasdirektive bezeichnet.

    using Project = PC.MyCompany.Project;  
    

Das Schlüsselwort using wird auch zum Erstellen von using-Anweisungen verwendet, mit denen sichergestellt wird, dass IDisposable-Objekte wie Dateien und Schriftarten richtig verarbeitet werden. Weitere Informationen finden Sie unter using-Anweisung.

Verwenden statischer Typen

Sie können auf statische Member eines Typs zugreifen, ohne den Zugriff mit dem Typnamen zu qualifizieren:

using static System.Console;   
using static System.Math;  
class Program   
{   
    static void Main()   
    {   
        WriteLine(Sqrt(3*3 + 4*4));   
    }   
}  

Hinweise

Der Bereich einer using-Direktive ist auf die Datei beschränkt, in der er enthalten ist.

Erstellen Sie einen using-Alias, um das Qualifizieren eines Bezeichners in einen Namespace oder Typ zu vereinfachen. Der rechten Seite einer using-Aliasdirektive muss immer ein vollqualifizierter Typ sein, unabhängig von den using-Direktiven davor.

Erstellen Sie eine using-Direktive, um die Typen in einem Namespace zu verwenden, ohne den Namespace angeben zu müssen. Eine using-Direktive ermöglicht Ihnen nicht den Zugriff auf Namespaces, die im angegebenen Namespace geschachtelt sind.

Gibt zwei Kategorien von Namespaces: benutzerdefinierte und systemdefinierte Namespaces. Benutzerdefinierte Namespaces sind Namespaces, die im Code definiert sind. Eine Liste der systemdefinierten Namespaces finden Sie unter .NET Framework-Klassenbibliothek.

Beispiele für das Verweisen auf Methoden in anderen Assemblys finden Sie unter Erstellen und Verwenden von C#-DLLs.

Beispiel 1

Das folgende Beispiel zeigt, wie Sie einen using-Alias für einen Namespace definieren und verwenden:

namespace PC
{
    // Define an alias for the nested namespace.
    using Project = PC.MyCompany.Project;
    class A
    {
        void M()
        {
            // Use the alias
            Project.MyClass mc = new Project.MyClass();
        }
    }
    namespace MyCompany
    {
        namespace Project
        {
            public class MyClass { }
        }
    }
}

Eine using-Aliasanweisung kann auf der rechten Seite nicht über einen offenen generischen Typen verfügen. Sie können zum Beispiel keinen using-Alias für „List<T>“ erstellen, jedoch für „List<int>“.

Beispiel 2

Das folgende Beispiel zeigt, wie Sie eine using-Direktive und einen using-Alias für eine Klasse definieren:

using System;

// Using alias directive for a class.
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class.
using UsingAlias = NameSpace2.MyClass<int>;

namespace NameSpace1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "You are in NameSpace1.MyClass.";
        }
    }

}

namespace NameSpace2
{
    class MyClass<T>
    {
        public override string ToString()
        {
            return "You are in NameSpace2.MyClass.";
        }
    }
}

namespace NameSpace3
{
    // Using directive:
    using NameSpace1;
    // Using directive:
    using NameSpace2;

    class MainClass
    {
        static void Main()
        {
            AliasToMyClass instance1 = new AliasToMyClass();
            Console.WriteLine(instance1);

            UsingAlias instance2 = new UsingAlias();
            Console.WriteLine(instance2);

        }
    }
}
// Output: 
//    You are in NameSpace1.MyClass.
//    You are in NameSpace2.MyClass.

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

C#-Referenz
C#-Programmierhandbuch
Using-Namespaces
C#-Schlüsselwörter
Namespace Keywords (Schlüsselwörter des Namespace)
Namespaces
Using-Anweisung