Пространство на файл
В 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,
которое подключает пространство для проекта