C# Language
Использование директивы
Поиск…
замечания
Ключевое слово 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();
Доступ к статическим членам класса
Позволяет вам импортировать определенный тип и использовать статические элементы типа, не присваивая им имя типа. Это показывает пример использования статических методов:
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>());