Директива using (Справочник по C#)

Директива using используется в двух случаях:

  • разрешает использование типов в пространстве имен, поэтому уточнение использования типа в этом пространстве имен не требуется;

    using System.Text;
    
  • позволяет создавать псевдонимы пространства имен или типа. Это называется директива using alias.

    using Project = PC.MyCompany.Project;
    

Ключевое слово using также используется для создания операторов using, которые обеспечивают правильную обработку объектов IDisposable, например файлов и шрифтов. Дополнительные сведения см. в разделе Оператор using.

Заметки

Область директивы using ограничивается файлом, в котором она появляется.

Создание псевдонима using упрощает определение идентификатора для пространства имен или типа. Правая часть директивы using alias должна всегда быть полным именем, независимо от предшествовавших ей директив using.

Создание директивы using позволяет использовать типы из пространства имен без указания этого пространства. Директива using не предоставляет доступ к пространствам имен, которые вложены в указанное пространство.

Существует две категории пространства имен: определенные пользователем и определенные системой. Пространства, определенные пользователем, — это те, которые определены в коде. Список пространств имен, определяемых системой, в разделе Библиотека классов .NET Framework.

Примеры методов связывания в других сборках см в разделе Создание и использование библиотек DLL C#.

Пример 1

Описание

В следующем примере кода показано определение и использование псевдонима using для пространства имен.

Код

namespace PC
{
    // Define an alias for the nested namespace.
    using Project = PC.MyCompany.Project;
    class A
    {
        void M()
        {
            // Use the alias
            Project.MyClass mc = new Project.MyClass();
        }
    }
    namespace MyCompany
    {
        namespace Project
        {
            public class MyClass { }
        }
    }
}

Комментарии

Директива using alias не может иметь открытый универсальный тип с правой части. Например, невозможно создать using alias для List<T>, но можно создать для List<int>.

Пример 2

Описание

В следующем примере показано определение директивы using и псевдонима using для класса.

Код

using System;

// Using alias directive for a class.
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class.
using UsingAlias = NameSpace2.MyClass<int>;

namespace NameSpace1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "You are in NameSpace1.MyClass.";
        }
    }

}

namespace NameSpace2
{
    class MyClass<T>
    {
        public override string ToString()
        {
            return "You are in NameSpace2.MyClass.";
        }
    }
}

namespace NameSpace3
{
    // Using directive:
    using NameSpace1;
    // Using directive:
    using NameSpace2;

    class MainClass
    {
        static void Main()
        {
            AliasToMyClass instance1 = new AliasToMyClass();
            Console.WriteLine(instance1);

            UsingAlias instance2 = new UsingAlias();
            Console.WriteLine(instance2);

        }
    }
}
// Output: 
//    You are in NameSpace1.MyClass.
//    You are in NameSpace2.MyClass.

Спецификация языка C#

Дополнительные сведения см в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

См. также

Ссылки

Ключевые слова C#

Ключевые слова, используемые для пространств имен (справочник по C#)

Пространства имен (Руководство по программированию в C#)

Оператор using (Справочник по C#)

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#