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 implicitaglobal 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.