Wird geladen...

Namespaces und Assemblies in C#

Erlernen Sie die Konzepte von Namespaces und Assemblies in C#, um Code zu strukturieren und Abhängigkeiten korrekt zu verwalten.

In der C#- und .NET-Welt werden die Konzepte Namespace (Namensraum) und Assembly (Assembly/Programmdatei) verwendet, um Code übersichtlich, verwaltbar und wiederverwendbar zu machen. Diese Strukturen ermöglichen die Aufteilung von Code, verhindern Namenskonflikte und erleichtern die gemeinsame Nutzung von Komponenten, auch in großen Projekten.


Namespace

Ein Namespace gruppiert Klassen, Schnittstellen, Enums und andere Typen in einer logischen Einheit. Dadurch können Klassen mit demselben Namen konfliktfrei in verschiedenen Namespaces verwendet werden.


namespace ProjektA.Models
{
    class Benutzer
    {
        public string Name { get; set; }
    }
}

namespace ProjektB.Models
{
    class Benutzer
    {
        public string VollerName { get; set; }
    }
}

In diesem Beispiel gibt es zwei verschiedene Benutzer-Klassen. Mit Namespaces wird darauf zugegriffen als ProjektA.Models.Benutzer oder ProjektB.Models.Benutzer.


using-Anweisung

Die using-Anweisung ermöglicht den direkten Zugriff auf Typen innerhalb eines bestimmten Namespaces.


using ProjektA.Models;

class Program
{
    static void Main()
    {
        Benutzer b = new Benutzer();
        b.Name = "Hans";
        Console.WriteLine(b.Name);
    }
}

Hier kann anstelle von ProjektA.Models.Benutzer einfach Benutzer geschrieben werden.


Assembly

Ein Assembly ist die verteilbare Einheit von kompiliertem .NET-Code. Es hat in der Regel die Endung .dll (Dynamic Link Library) oder .exe (ausführbare Datei).


Inhalt eines Assemblys

Ein Assembly enthält nicht nur Code, sondern auch Metadaten (z. B. Versionsinformationen) und Ressourcendateien.


TL;DR

  • Namespace: Organisiert Code in logische Gruppen.
  • Assembly: Verteilbare Einheit von kompiliertem Code (.dll, .exe).
  • Namespace → verhindert Namenskonflikte und sorgt für Struktur.
  • Assembly → enthält Code, Metadaten und Ressourcen in einem einzigen Paket.