C# Namespaces: Namenskonflikte vermeiden & Code organisieren
Was ist ein Namespace?
Ein Namespace ist ein logischer Container, der Typen (Klassen, Structs, Interfaces, Enums, Delegates) gruppiert und Namenskonflikte vermeidet. Gleichnamige Typen in verschiedenen Namespaces kollidieren nicht.
Namespace definieren
namespace MyCompany.MyProject.Utilities
{
public class Helper { ... }
}
Typen verwenden
Vollqualifizierter Name:
MyCompany.MyProject.Utilities.Helper h = new MyCompany.MyProject.Utilities.Helper();
using-Direktive
Macht Typen eines Namespaces ohne Präfix verfügbar:
using MyCompany.MyProject.Utilities;
Helper h = new Helper(); // Kurzform
using Alias
Bei Namenskonflikten oder langen Namen:
using Util = MyCompany.MyProject.Utilities;
Util.Helper h = new Util.Helper();
Beispiel: Zwei Namespaces, gleiche Klassennamen
namespace FirstSpace
{
public class MyClass { public void Func() => Console.WriteLine("FirstSpace"); }
}
namespace SecondSpace
{
public class MyClass { public void Func() => Console.WriteLine("SecondSpace"); }
}
class Test
{
static void Main()
{
FirstSpace.MyClass f = new FirstSpace.MyClass();
SecondSpace.MyClass s = new SecondSpace.MyClass();
f.Func(); // FirstSpace
s.Func(); // SecondSpace
}
}
Verschachtelte Namespaces
namespace Outer
{
namespace Inner
{
public class NestedClass { }
}
}
// Zugriff
Outer.Inner.NestedClass obj = new Outer.Inner.NestedClass();
// oder mit using
using Outer.Inner;
var obj2 = new NestedClass();
Best Practices
- Firmenname als Wurzel:
Company.Product.Module - Vermeiden Sie tiefe Verschachtelung (> 3-4 Ebenen).
usingam Dateianfang;using staticfür statische Klassen (z. B.using static System.Math;).- Globale
using-Direktiven (C# 10 / .NET 6+) inGlobalUsings.cszentralisieren.
C Sprache
- C# Hello World – Ihre erste C#-Anwendung erstellen
- C# Keywords und Identifiers verstehen: Regeln, Listen und Best Practices
- C# Variablen & Primitive Datentypen meistern: Der komplette Guide
- C# Operatoren – Umfassender Leitfaden zu Operatoren in C#
- C# Bitweise und Bit-Shift-Operatoren meistern: Umfassender Leitfaden
- C# Grundlagen: Eingabe und Ausgabe Essentials
- C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
- C# Kommentare meistern: Arten, Best Practices und XML-Dokumentation
- C# Switch Statement meistern: Syntax, Beispiele & Best Practices
- C# Ternärer Operator: Knapper Leitfaden zu bedingten Ausdrücken