using-Anweisung (C#-Referenz)using Directive (C# Reference)

Die using-Direktive hat drei Verwendungszwecke:The using directive has three uses:

  • Sie ermöglicht die Verwendung von Typen in einem Namespace, sodass Sie die Verwendung eines Typs in diesem Namespace nicht qualifizieren müssen:To allow the use of types in a namespace so that you do not have to qualify the use of a type in that namespace:

    using System.Text;  
    
  • Ermöglicht den Zugriff auf statische Member eines Typs, ohne den Zugriff mit dem Typnamen zu qualifizieren.To allow you to access static members of a type without having to qualify the access with the type name.

    using static System.Math;  
    

    Weitere Informationen finden Sie unter using static-Direktive (C#-Referenz).For more information, see the using static directive.

  • Erstellen eines Alias für einen Namespace oder Typ.To create an alias for a namespace or a type. Dies wird als using-Aliasdirektive bezeichnet.This is called a using alias directive.

    using Project = PC.MyCompany.Project;  
    

Das using-Schlüsselwort wird auch zum Erstellen von using-Anweisungen verwendet, mit denen sichergestellt wird, dass IDisposable-Objekte wie Dateien und Schriftarten richtig verarbeitet werden.The using keyword is also used to create using statements, which help ensure that IDisposable objects such as files and fonts are handled correctly. Weitere Informationen finden Sie unter using-Anweisung.See using Statement for more information.

Verwenden statischer TypenUsing Static Type

Sie können auf statische Member eines Typs zugreifen, ohne den Zugriff mit dem Typnamen zu qualifizieren:You can access static members of a type without having to qualify the access with the type name:

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

HinweiseRemarks

Der Bereich einer using-Direktive ist auf die Datei beschränkt, in der er enthalten ist.The scope of a using directive is limited to the file in which it appears.

Erstellen Sie einen using-Alias, um das Qualifizieren eines Bezeichners in einen Namespace oder Typ zu vereinfachen.Create a using alias to make it easier to qualify an identifier to a namespace or type. Der rechten Seite einer using-Aliasdirektive muss immer ein vollqualifizierter Typ sein, unabhängig von den using-Direktiven davor.The right side of a using alias directive must always be a fully-qualified type regardless of the using directives that come before it.

Erstellen Sie eine using-Direktive, um die Typen in einem Namespace zu verwenden, ohne den Namespace angeben zu müssen.Create a using directive to use the types in a namespace without having to specify the namespace. Eine using-Direktive ermöglicht Ihnen nicht den Zugriff auf Namespaces, die im angegebenen Namespace geschachtelt sind.A using directive does not give you access to any namespaces that are nested in the namespace you specify.

Gibt zwei Kategorien von Namespaces: benutzerdefinierte und systemdefinierte Namespaces.Namespaces come in two categories: user-defined and system-defined. Benutzerdefinierte Namespaces sind Namespaces, die im Code definiert sind.User-defined namespaces are namespaces defined in your code. Eine Liste der systemdefinierten Namespaces finden Sie .NET Framework Class Library Overview.For a list of the system-defined namespaces, see .NET Framework Class Library Overview.

Beispiele für das Verweisen auf Methoden in anderen Assemblys finden Sie in erstellen und verwenden die Assemblys mithilfe der Befehlszeile.For examples on referencing methods in other assemblies, see Create and Use Assemblies Using the Command Line.

Beispiel 1Example 1

Das folgende Beispiel zeigt, wie Sie einen using-Alias für einen Namespace definieren und verwenden:The following example shows how to define and use a using alias for a namespace:

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.A using alias directive cannot have an open generic type on the right hand side. Sie können zum Beispiel keinen using-Alias für „List<T>“ erstellen, jedoch für „List<int>“.For example, you cannot create a using alias for a List<T>, but you can create one for a List<int>.

Beispiel 2Example 2

Das folgende Beispiel zeigt, wie Sie eine using-Direktive und einen using-Alias für eine Klasse definieren:The following example shows how to define a using directive and a using alias for a class:

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#-ProgrammiersprachenspezifikationC# Language Specification

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

Siehe auchSee Also

C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
Using-NamespacesUsing Namespaces
C#-SchlüsselwörterC# Keywords
NamespaceschlüsselwörterNamespace Keywords
NamespacesNamespaces
Using-Anweisungusing Statement