C# Language
Verwendung der Richtlinie
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
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>());