Suche…


Bemerkungen

Das Schlüsselwort using ist sowohl eine Direktive (dieses Thema) als auch eine Anweisung.

Für die using Anweisung (dh um den Gültigkeitsbereich eines IDisposable Objekts zu kapseln und sicherzustellen, dass das Objekt außerhalb dieses Gültigkeitsbereichs sauber entsorgt wird), IDisposable Using Statement .

Grundlegende Verwendung

using System;
using BasicStuff = System;
using Sayer = System.Console;
using static System.Console;  //From C# 6

class Program
{
    public static void Main()
    {
        System.Console.WriteLine("Ignoring usings and specifying full type name");
        Console.WriteLine("Thanks to the 'using System' directive");
        BasicStuff.Console.WriteLine("Namespace aliasing");
        Sayer.WriteLine("Type aliasing");
        WriteLine("Thanks to the 'using static' directive (from C# 6)");
    }
}

Verweisen Sie auf einen Namespace

using System.Text;
//allows you to access classes within this namespace such as StringBuilder
//without prefixing them with the namespace.  i.e:

//...
var sb = new StringBuilder();
//instead of
var sb = new System.Text.StringBuilder();

Verknüpfen Sie einen Alias ​​mit einem Namespace

using st = System.Text;
//allows you to access classes within this namespace such as StringBuilder
//prefixing them with only the defined alias and not the full namespace.  i.e:

//...
var sb = new st.StringBuilder();
//instead of
var sb = new System.Text.StringBuilder();

Zugriff auf statische Member einer Klasse

6,0

Ermöglicht das Importieren eines bestimmten Typs und das Verwenden der statischen Member des Typs, ohne sie mit dem Typnamen zu qualifizieren. Dies zeigt ein Beispiel mit statischen Methoden:

using static System.Console;

// ...

string GetName()
{
    WriteLine("Enter your name.");
    return ReadLine();
}

Und dies zeigt ein Beispiel mit statischen Eigenschaften und Methoden:

using static System.Math;

namespace Geometry
{
    public class Circle
    {
        public double Radius { get; set; };

        public double Area => PI * Pow(Radius, 2);
    }
}

Verknüpfen Sie einen Alias, um Konflikte zu lösen

Wenn Sie mehrere Namespaces verwenden, die möglicherweise Klassen mit demselben Namen haben (z. B. System.Random und UnityEngine.Random ), können Sie einen Alias ​​verwenden, um anzugeben, dass Random aus dem einen oder dem anderen stammt, ohne den gesamten Namespace im Aufruf verwenden zu müssen .

Zum Beispiel:

using UnityEngine;
using System;

Random rnd = new Random();

Dadurch wird der Compiler unsicher, unter welchem Random die neue Variable ausgewertet wird. Stattdessen können Sie Folgendes tun:

using UnityEngine;
using System;
using Random = System.Random;

Random rnd = new Random();

Dies schließt nicht aus, dass Sie den anderen über seinen vollqualifizierten Namespace aufrufen, wie folgt:

using UnityEngine;
using System;
using Random = System.Random;

Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);

rnd wird eine System.Random Variable und unityRandom eine UnityEngine.Random Variable.

Verwenden von Alias-Direktiven

Sie können use using , um einen Alias ​​für einen Namespace oder einen Typ festzulegen. Weitere Details finden Sie hier .

Syntax:

using <identifier> = <namespace-or-type-name>;

Beispiel:

using NewType = Dictionary<string, Dictionary<string,int>>;
NewType multiDictionary = new NewType();
//Use instances as you are using the original one
multiDictionary.Add("test", new Dictionary<string,int>());


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow