Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
19 of 1492 menu
◀ ▶

Пространство на файл

В C# можно объявить file-scoped namespace: после namespace и имени ставят точку с запятой, без фигурных скобок вокруг файла. Все типы ниже директивы попадают в это пространство. Такой способ не заменяет блочное namespace со скобками, а дополняет его для одного пространства на файл.

Синтаксис

namespace ИмяПространства; // типы файла в этом пространстве

Пример

Давайте объявим класс сразу после директивы namespace App;:

using System; namespace App; class Worker { public void Run() { Console.WriteLine("abcde"); } } class Program { static void Main() { Worker worker = new Worker(); worker.Run(); } }

Результат выполнения кода:

"abcde"

Пример

Из другого файла к типу обращаются по полному имени App.Counter или через using App в начале того файла:

using System; namespace App; class Counter { public int Value { get; set; } } class Program { static void Main() { Counter counter = new Counter { Value = 3 }; Console.WriteLine(counter.Value); } }

Результат выполнения кода:

3

Пример

Вложенное имя пространства записывают через точку в одной директиве:

using System; namespace App.Data; class Store { public string Get() { return "12345"; } } class Program { static void Main() { Store store = new Store(); Console.WriteLine(store.Get()); } }

Результат выполнения кода:

"12345"

Пример

В одном файле допускается только одна такая директива - в начале, до объявлений типов:

using System; namespace App.Services; interface ITask { void Execute(); } class Job : ITask { public void Execute() { Console.WriteLine("done"); } } class Program { static void Main() { ITask task = new Job(); task.Execute(); } }

Результат выполнения кода:

"done"

Смотрите также

  • блочное пространство имён,
    которое задаёт область фигурными скобками
  • директива using,
    которая сокращает имена типов
  • код без класса,
    который часто сочетают с пространством на файл
  • global using,
    которое подключает пространство для проекта
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить