Zum Fußzeileninhalt springen
Iron Academy Logo
Lernen Sie C#
Lernen Sie C#

Andere Kategorien

C# Verwendung von Direktiven und Typaliasen in .NET 8

[[academy-video-youtube({"vid": "GiVZzrL2EIM", "start_time": "0", "title": "C# Using-Direktiven und Typ-Aliasse in .NET 8", "creator": "Tim Corey", "length": "9m 03s"})]]

Das using Schlüsselwort in C# hat mehr als eine Funktion, und die Kluft zwischen seiner grundlegenden Form und seinen neueren Fähigkeiten ist größer, als die meisten Entwickler erkennen. Namensraum-Verkürzungen gibt es seit Anfang an, statische Klassenimporte kamen in .NET 6 dazu und .NET 8 erweiterte die Alias-Syntax, um jeden Typ, einschließlich Tupel, abzudecken. Alle drei Formen zu kennen, ermöglicht es Ihnen, sich wiederholende Typ-Deklarationen auf einen einzigen gut lesbaren Namen am Anfang einer Datei zu reduzieren.

Dieser Leitfaden erforscht jede Form des using-Direktivs in einer .NET 8 Konsolenanwendung, basierend auf Tim Coreys Durchlauf der neuesten Funktionen. Wir bauen von der bekannten Namensraum-Verkürzung bis hin zur neuen Typalias-Syntax auf.

Ausgangspunkt: Die grundlegende Namensraum-Direktive

[0:35 - 1:35] Die Einrichtung beginnt mit der Deaktivierung impliziter Usings, sodass jede Direktive im Code deutlich sichtbar ist. Ohne jegliche using Anweisungen am Anfang erfordert der Aufruf von Console.WriteLine den voll qualifizierten Namen: System.Console.WriteLine. Das Hinzufügen einer einzelnen Direktive löst dies:

using System;
using System;

Diese eine Zeile macht jeden Typ innerhalb von System unter seinem Kurznamen verfügbar. Die Direktive ist kein Import im bibliothekarischen Sinne; es wird kein neuer Code hinzugefügt. Es ist eine Namensraum-Verkürzung, die dem Compiler mitteilt, wo er suchen soll, wenn er auf einen unqualifizierten Typnamen stößt.

Verwendung von statisch: Überspringen des Klassen-Namens

[2:19 - 2:45] Die using static Form zielt auf eine spezifische statische Klasse ab, anstatt auf einen Namensraum. Wenn Sie es auf System.Console richten, wird jedes statische Mitglied dieser Klasse ohne Klassenpräfix verfügbar:

using static System.Console;

WriteLine("Hello, world!");
using static System.Console;

WriteLine("Hello, world!");

Anstatt Console.WriteLine aufzurufen, rufen Sie WriteLine direkt auf. Diese Form, die mit .NET 6 eingeführt wurde, ist besonders nützlich, wenn eine Datei dieselbe statische Klasse mehrfach aufruft. Das Eliminieren des wiederholten Klassennamens reduziert den visuellen Lärm an jeder Aufrufstelle.

Typalias: Benennen eines beliebigen Typs

[3:41 - 6:40] .NET 8 erweiterte die Alias-Syntax, sodass using einem beliebigen Typ einen Kurznamen zuweisen kann. Ein motivierender Fall ist ein benanntes Tupel. Tupel sind gängige Rückgabewerte, wenn eine Methode mehrere verwandte Werte zurücksenden muss, ohne eine vollständige Klassendefinition, aber das Deklarieren desselben Tupeltyps mehrmals in einer Datei führt zu vielen Wiederholungen:

// Without an alias, each declaration repeats the full tuple type
(string FirstName, string LastName) GetUser() { ... }
(string FirstName, string LastName) person = GetUser();
// Without an alias, each declaration repeats the full tuple type
(string FirstName, string LastName) GetUser() { ... }
(string FirstName, string LastName) person = GetUser();

Ein Typalias reduziert dies auf eine einzige Deklaration am Anfang:

using Person = (string FirstName, string LastName);
using Person = (string FirstName, string LastName);

Ab diesem Punkt im Dokument steht Person für die vollständige Tupel-Deklaration:

Person GetUser() { ... }
Person person = GetUser();
Person GetUser() { ... }
Person person = GetUser();

Der Alias lebt nur innerhalb der Datei, in der er deklariert ist. Er breitet sich nicht über die gesamte Anwendung aus. Beachten Sie, dass wenn der Typ im gesamten Projekt verfügbar sein muss, ein Record oder eine Klasse die geeignete Wahl ist.

Alias vs. Record oder Klasse

[5:32 - 6:23] Eine häufige Frage taucht auf: Wenn Person wie ein Datensatz aussieht, warum nicht einfach einen deklarieren? Die Antwort liegt im Bereich und Gewicht. Ein Record oder Klasse ist ein benannter Typ, der im gesamten Projekt existiert, seine eigene Datei trägt und gewartet werden muss, während sich die Codebasis entwickelt. Ein Tupelalias ist eine lokal in einer Datei befindliche Bequemlichkeit. Wenn Sie ein Zwei-Feld-Tupel zwei- oder dreimal innerhalb einer Klassen-Datei verwenden, fügt die Erstellung einer vollständigen Typdefinition einen Wartungsaufwand hinzu, den der Alias vermeidet. Die Absicht des .NET-Teams ist es, eine Reihe von Optionen zu bieten, anstatt eine binäre Wahl zwischen einem rohen Tupel und einer vollständigen Klasse zu erzwingen.

Abschluss

Die drei using Formen decken unterschiedliche Bedürfnisse ab. Die grundlegende Namensraum-Direktive verkürzt qualifizierte Typnamen im gesamten Dokument, während using static das Klassenpräfix von statischen Mitgliedsaufrufen entfernt. Der .NET 8 Typalias weist jedem Typ, einschließlich Tupeln, der auf eine einzige Datei beschränkt ist, einen lesbaren Namen zu. Jede Form verringert Wiederholungen, ohne das grundlegende Verhalten Ihres Codes zu ändern.

Sehen Sie sich das vollständige Video auf Tim Coreys YouTube Kanal für eine live Demonstration aller drei Formen in einem funktionierenden .NET 8 Projekt an.

Hero Worlddot related to C# Verwendung von Direktiven und Typaliasen in .NET 8
Hero Affiliate related to C# Verwendung von Direktiven und Typaliasen in .NET 8

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an