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

6.0

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>());


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow