Deklarace oborů názvů pro uspořádání typů
Obory názvů se silně využívají v programování v jazyce C# dvěma způsoby. Rozhraní .NET nejprve používá obory názvů k uspořádání svých mnoha tříd, a to takto:
System.Console.WriteLine("Hello World!");
System je obor názvů a Console je třída v tomto oboru názvů. usingKlíčové slovo lze použít, aby se úplný název nevyžadoval, jako v následujícím příkladu:
using System;
Console.WriteLine("Hello World!");
Další informace naleznete v direktivě using.
Důležité
Šablony jazyka C# pro rozhraní .NET 6 používají příkazy nejvyšší úrovně. Pokud jste už provedli upgrade na verze Preview pro .NET 6, vaše aplikace nemusí odpovídat kódu v tomto článku. Další informace najdete v článku o nových šablonách jazyka C# generujících příkazy na nejvyšší úrovni .
Sada SDK pro .NET 6 také přidá sadu implicitních global using direktiv pro projekty, které používají následující sady SDK:
- Microsoft.NET.Sdk
- Microsoft.NET.Sdk.Web
- Microsoft. NET. SDK. Worker
Tyto implicitní global using direktivy zahrnují nejběžnější obory názvů pro typ projektu.
Za druhé deklarujete vlastní obory názvů, které vám pomohou řídit obor názvů tříd a metod ve větších programovacích projektech. Použijte klíčové slovo Namespace k deklarování oboru názvů, jak je uvedeno v následujícím příkladu:
namespace SampleNamespace
{
class SampleClass
{
public void SampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
}
Název oboru názvů musí být platný název identifikátoruC#.
Počínaje jazykem C# 10 můžete deklarovat obor názvů pro všechny typy definované v tomto souboru, jak je znázorněno v následujícím příkladu:
namespace SampleNamespace;
class AnotherSampleClass
{
public void AnotherSampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
Výhodou této nové syntaxe je, že je jednodušší a ukládá horizontální mezery a závorky. To usnadňuje čtení kódu.
Přehled názvových prostorů
Obory názvů mají následující vlastnosti:
- Organizují velké projekty kódu.
- Jsou odděleny pomocí
.operátoru. usingDirektiva obviates požadavek na zadání názvu oboru názvů pro každou třídu.globalObor názvů je "kořenový" obor názvů:global::Systembude vždycky odkazovat na System obor názvů .NET.
specifikace jazyka C#
Další informace najdete v části obory názvů specifikace jazyka C#.