Deklarera namnområden för att organisera typer
Namnrymder används mycket i C#-programmering på två sätt. För det första använder .NET namnområden för att organisera sina många klasser enligt följande:
System.Console.WriteLine("Hello World!");
System är ett namnområde och Console är en klass i det namnområdet. Nyckelordet using
kan användas så att det fullständiga namnet inte krävs, som i följande exempel:
using System;
Console.WriteLine("Hello World!");
Mer information finns i användningsdirektivet.
Viktigt!
C#-mallarna för .NET 6 använder toppnivåinstruktioner. Programmet kanske inte matchar koden i den här artikeln om du redan har uppgraderat till .NET 6. Mer information finns i artikeln om nya C#-mallar som genererar instruktioner på toppnivå
.NET 6 SDK lägger också till en uppsättning implicita global using
direktiv för projekt som använder följande SDK:er:
- Microsoft.NET.Sdk
- Microsoft.NET.Sdk.Web
- Microsoft.NET.Sdk.Worker
Dessa implicita global using
direktiv innehåller de vanligaste namnrymderna för projekttypen.
Mer information finns i artikeln om implicit användning av direktiv
För det andra kan du genom att deklarera egna namnområden hjälpa dig att styra omfånget för klass- och metodnamn i större programmeringsprojekt. Använd nyckelordet namespace för att deklarera ett namnområde, som i följande exempel:
namespace SampleNamespace
{
class SampleClass
{
public void SampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
}
Namnet på namnområdet måste vara ett giltigt C#- identifierarnamn.
Från och med C# 10 kan du deklarera ett namnområde för alla typer som definierats i filen, enligt följande exempel:
namespace SampleNamespace;
class AnotherSampleClass
{
public void AnotherSampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
Fördelen med den här nya syntaxen är att det är enklare att spara vågrätt utrymme och klammerparenteser. Det gör koden enklare att läsa.
Översikt över namnområden
Namnområden har följande egenskaper:
- De organiserar stora kodprojekt.
- De avgränsas med hjälp av operatorn
.
. - Direktivet
using
undanröjer kravet på att ange namnet på namnområdet för varje klass. - Namnområdet
global
är namnområdet "root":global::System
refererar alltid till .NET-namnområdet System .
Språkspecifikation för C#
Mer information finns i avsnittet Namnområden i C#-språkspecifikationen.