Deklarieren von Namespaces zum Organisieren von Typen

Namespaces werden beim Programmieren mit C# häufig und auf zwei verschiedene Arten verwendet. Zunächst verwendet .NET Namespaces, um die vielen Klassen folgendermaßen zu organisieren:

System.Console.WriteLine("Hello World!");

System ist ein Namespace, und Console ist eine Klasse in diesem Namespace. Es ist möglich, das using-Schlüsselwort zu verwenden, sodass der vollständige Name nicht erforderlich ist, wie im folgenden Beispiel:

using System;
Console.WriteLine("Hello World!");

Weitere Information finden Sie unter der using-Anweisung.

Wichtig

Die C#-Vorlagen für .NET 6 verwenden Anweisungen der obersten Ebene. Ihre Anwendung passt möglicherweise nicht zum Code in diesem Artikel, wenn Sie bereits ein Upgrade auf .NET 6 durchgeführt haben. Weitere Informationen finden Sie im Artikel Neue C#-Vorlagen generieren Anweisungen auf oberster Ebene.

Das .NET 6 SDK fügt auch eine Reihe impliziterglobal using-Anweisungen für Projekte hinzu, die die folgenden SDKs verwenden:

  • Microsoft.NET.Sdk
  • Microsoft.NET.Sdk.Web
  • Microsoft.NET.Sdk.Worker

Diese impliziten global using-Anweisungen enthalten die gängigsten Namespaces für den Projekttyp.

Weitere Informationen finden Sie im Artikel zum Thema „Implizite Verwendung von Anweisungen“.

Zweitens: Eigene Namespaces zu deklarieren kann Ihnen dabei helfen, den Umfang der Klassen- und Methodennamen in größeren Programmierprojekten zu steuern. Verwenden Sie das Namespace-Schlüsselwort, um einen Namespace wie im folgenden Beispiel zu deklarieren:

namespace SampleNamespace
{
    class SampleClass
    {
        public void SampleMethod()
        {
            System.Console.WriteLine(
                "SampleMethod inside SampleNamespace");
        }
    }
}

Der Name des Namespace muss ein gültiger C#- Bezeichnername sein.

Ab C# 10 können Sie einen Namespace für alle in der Datei definierten Typen deklarieren, wie im folgenden Beispiel gezeigt:

namespace SampleNamespace;

class AnotherSampleClass
{
    public void AnotherSampleMethod()
    {
        System.Console.WriteLine(
            "SampleMethod inside SampleNamespace");
    }
}

Der Vorteil dieser neuen Syntax besteht darin, dass sie einfacher ist sowie horizontalen Platz und geschweifte Klammern spart. Dies erleichtert das Lesen Ihres Codes.

Übersicht über Namespaces

Namespaces verfügen über die folgenden Eigenschaften:

  • Sie organisieren umfangreiche Codeprojekte.
  • Sie werden durch den .-Operator getrennt.
  • Durch die using-Direktive besteht keine Notwendigkeit, den Namen des Namespace für jede Klasse anzugeben.
  • Der global-Namespace ist der Stammnamespace: global::System verweist immer auf den .NET-Namespace System.

C#-Sprachspezifikation

Weitere Informationen finden Sie im Abschnitt Namespaces der C#-Sprachspezifikation.