Neuerungen in C# Sprachversion 10

C# 10: Produktivität steigern, Boilerplate reduzieren

C# 10 bringt vor allem syntaktische Verbesserungen, die Projekte schlanker machen – ohne neue Konzepte einführen zu müssen. Globale Usings, Dateibereichsnamensräume und implizite Usings reduzieren Redundanz. Zeichenfolgeninterpolation in Konstanten sorgt für mehr Ausdrucksstärke bei Compile-Zeit-Konstanten.

Globale Usings

Globale Usings eliminieren Wiederholungen am Anfang jeder Datei. Statt using-Anweisungen in jeder Datei, definierst du sie einmal zentral:

global using System;
global using System.Collections.Generic;
global using System.Linq;

Typisch in GlobalUsings.cs oder _Imports.cs. Gilt für das ganze Projekt. Spart Tipparbeit, reduziert Merge-Konflikte. Kein Einfluss auf Performance.

Unterstützt: Namespaces, statische Klassen. Nicht unterstützt: Aliase, Bedingungen, Instanzmitglieder.

Dateibereichsnamensräume

Erspart unnötige Klammern und Einrückungen. Statt:

namespace MyApp.Core
{
    class MyClass { }
}

jetzt kompakt so:

namespace MyApp.Core;

class MyClass { }

Gültig für die ganze Datei. Keine Verschachtelung mehr möglich. Muss an erster Stelle stehen. Praktisch für Libraries, Clean Code und Auto-Generated-Code.

Implizite Usings

Aktivierbar in der .csproj mit:


  enable

Fügt automatisch Standard-Namespaces wie System, System.Linq, System.Threading.Tasks etc. ein – je nach SDK-Typ (z. B. Microsoft.NET.Sdk.Web). Ideal für kleine Projekte, Samples, Minimal-APIs.

Deaktivierbar mit disable. Überschreibbar mit:

default;Microsoft.AspNetCore

Kein Einfluss auf die Performance. Es geht rein um weniger Schreibarbeit.

Konstante Zeichenfolgeninterpolation

Vor C# 10 war Interpolation in const Strings nicht möglich. Jetzt schon – solange alle enthaltenen Werte ebenfalls konstant sind.

const string prefix = "Version";
const int version = 10;
const string full = $"{prefix} {version}"; // gültig seit C# 10

Praktisch für Konstanten in Logging, Attributen, Source Generatoren und mehr.

Fazit für Entwickler

  • Globale Usings: Reduziert Redundanz, gut für große Projekte
  • Dateibereichs-Namensräume: Spart Einrückungen und Klammern
  • Implizite Usings: Nützlich für Boilerplate-freie Quickstarts
  • Interpolierte Konstanten: Mehr Ausdruck in compile-time Strings

Quellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert