Объявление пространств имен для упорядочивания типов

Пространства имен часто используются в программировании на C# двумя способами. Первый способ — .NET использует пространства имен для упорядочения множества ее классов следующим образом:

System.Console.WriteLine("Hello World!");

System является пространством имен, а Console — это класс в нем. using Ключевое слово можно использовать таким образом, чтобы полное имя не требуется, как показано в следующем примере:

using System;
Console.WriteLine("Hello World!");

См. дополнительные сведения о директиве using.

Внимание

В шаблонах C# для .NET 6 используются операторы верхнего уровня. Приложение может не соответствовать коду в этой статье, если вы уже обновили его до .NET 6. Дополнительные сведения см. в статье Новые шаблоны C# для создания инструкций верхнего уровня.

Пакет SDK для .NET 6 также добавляет набор неявных global using директив для проектов, использующих следующие пакеты SDK:

  • Microsoft.NET.Sdk
  • Microsoft.NET.Sdk.Web
  • Microsoft.NET.Sdk.Worker

Эти неявные директивы global using включают наиболее распространенные пространства имен для соответствующего типа проектов.

Дополнительные сведения см. в статье о неявных директивах using

Второй способ — объявление собственных пространств имен поможет вам контролировать область имен классов и методов в более крупных проектах. Используйте ключевое слово namespace, чтобы объявить пространство имен, как показано в следующем примере:

namespace SampleNamespace
{
    class SampleClass
    {
        public void SampleMethod()
        {
            System.Console.WriteLine(
                "SampleMethod inside SampleNamespace");
        }
    }
}

Имя пространства имен должно быть допустимым именем идентификатора C#.

Начиная с C# 10, можно объявить пространство имен для всех типов, определенных в этом файле, как показано в следующем примере:

namespace SampleNamespace;

class AnotherSampleClass
{
    public void AnotherSampleMethod()
    {
        System.Console.WriteLine(
            "SampleMethod inside SampleNamespace");
    }
}

Преимущество этого нового синтаксиса заключается в том, что это проще, экономия горизонтального пространства и фигурных скобок. Это упрощает чтение кода.

Обзор пространств имен

Пространства имен имеют следующие свойства:

  • Они помогают упорядочивать проекты с большим объемом кода.
  • Они разделены с помощью . оператора.
  • Директива using позволяет не указывать название пространства имен для каждого класса.
  • Пространство имен global является корневым: global::System всегда будет ссылаться на пространство имен System в .NET.

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

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