C# Language
Korzystanie z dyrektywy
Szukaj…
Uwagi
using
słowem kluczowym jest zarówno dyrektywa (ten temat), jak i instrukcja.
Aby zapoznać się using
instrukcją using
(tj. W celu zawarcia zakresu obiektu IDisposable
, zapewniając, że poza tym zakresem obiekt zostanie oczyszczony), zobacz Instrukcja użytkowania .
Podstawowe użycie
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)");
}
}
Odwołaj się do przestrzeni nazw
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();
Skojarz alias z przestrzenią nazw
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();
Uzyskaj dostęp do statycznych członków klasy
Umożliwia importowanie określonego typu i używanie statycznych elementów typu bez kwalifikowania ich nazwą typu. To pokazuje przykład przy użyciu metod statycznych:
using static System.Console;
// ...
string GetName()
{
WriteLine("Enter your name.");
return ReadLine();
}
A to pokazuje przykład z użyciem właściwości statycznych i metod:
using static System.Math;
namespace Geometry
{
public class Circle
{
public double Radius { get; set; };
public double Area => PI * Pow(Radius, 2);
}
}
Powiąż alias, aby rozwiązać konflikty
Jeśli używasz wielu przestrzeni nazw, które mogą mieć klasy o tej samej nazwie (takie jak System.Random
i UnityEngine.Random
), możesz użyć aliasu, aby określić, że Random
pochodzi od jednego lub drugiego bez konieczności używania całej przestrzeni nazw w wywołaniu .
Na przykład:
using UnityEngine;
using System;
Random rnd = new Random();
Spowoduje to, że kompilator nie będzie pewien, który Random
oceni nową zmienną jako. Zamiast tego możesz:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
Nie wyklucza to możliwości dzwonienia do drugiej osoby poprzez jej w pełni kwalifikowaną przestrzeń nazw, taką jak ta:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);
rnd
będzie zmienną System.Random
, a unityRandom
będzie zmienną UnityEngine.Random
.
Korzystanie z dyrektyw aliasowych
Możesz użyć using
, aby ustawić alias dla przestrzeni nazw lub typu. Więcej szczegółów można znaleźć tutaj .
Składnia:
using <identifier> = <namespace-or-type-name>;
Przykład:
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>());