Объявление пространств имен для упорядочения типов
Пространства имен часто используются в программировании на 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
включают наиболее распространенные пространства имен для соответствующего типа проектов.
Второй способ — объявление собственных пространств имен поможет вам контролировать область имен классов и методов в более крупных проектах. Используйте ключевое слово 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.