Поиск…


замечания

Ключевое слово using - это директива (этот раздел) и оператор.

Для оператора using (т. Е. Для инкапсуляции области объекта IDisposable , гарантирующего, что вне этой области объект будет очищен) см. Использование Statement .

Основное использование

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)");
    }
}

Ссылка на пространство имен

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

Связывать псевдоним с пространством имен

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

Доступ к статическим членам класса

6,0

Позволяет вам импортировать определенный тип и использовать статические элементы типа, не присваивая им имя типа. Это показывает пример использования статических методов:

using static System.Console;

// ...

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

И это показывает пример использования статических свойств и методов:

using static System.Math;

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

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

Связать псевдоним для разрешения конфликтов

Если вы используете несколько пространств имен, которые могут иметь классы с одинаковым именем (например, System.Random и UnityEngine.Random ), вы можете использовать псевдоним, чтобы указать, что Random приходит от того или другого без использования всего пространства имен в вызове ,

Например:

using UnityEngine;
using System;

Random rnd = new Random();

Это заставит компилятор быть неуверенным, какой Random для оценки новой переменной as. Вместо этого вы можете:

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

Random rnd = new Random();

Это не мешает вам позвонить другому по его полностью квалифицированному пространству имен, например:

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

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

rnd будет переменной System.Random а unityRandom будет переменной UnityEngine.Random .

Использование псевдонимов

Вы можете использовать , using для того , чтобы установить псевдоним для пространства имен или типа. Более подробную информацию можно найти здесь .

Синтаксис:

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

Пример:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow