Przejdź do treści stopki
Iron Academy Logo
Naucz się C#
Naucz się C#

Inne Kategorie

Dyrektywy using i aliasy typów C# w .NET 8

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

Slowo kluczowe using w C# robi więcej niż jedna rzecz, a różnica między jego podstawową formą a nowymi możliwościami jest większa, niż większość programistów zdaje sobie sprawę. Skróty przestrzeni nazw istnieją od początku, importy statycznych klas pojawiły się w .NET 6, a .NET 8 rozszerzył składnię aliasów, aby obejmowała dowolny typ, w tym krotki. Znając wszystkie trzy formy, możesz zredukować powtarzające się deklaracje typów do jednej czytelnej nazwy na początku pliku.

Ten przewodnik analizuje każdą formę dyrektywy using w aplikacji konsolowej .NET 8, na podstawie przeprowadzki Tima Coreya po najnowszych funkcjach. Zaczną od znanej skrótu przestrzeni nazw po nową składnię aliasu typu.

Punkt startowy: Podstawowa dyrektywa przestrzeni nazw

[0:35 - 1:35] Ustawienie rozpoczyna się od wyłączenia implicit usings, aby każda dyrektywa była wyraźnie widoczna w kodzie. Bez żadnych poleceń using na górze, wywołanie Console.WriteLine wymaga podania pełnej kwalifikowanej nazwy: System.Console.WriteLine. Dodanie jednej dyrektywy to rozwiązuje:

using System;
using System;

Ta jedna linia udostępnia każdy typ wewnątrz System pod jego krótką nazwą. Dyrektywa nie jest importem w sensie biblioteki; nie wprowadzono żadnego nowego kodu. To jest skrót przestrzeni nazw, który informuje kompilator, gdzie szukać, gdy napotka niekwalifikowaną nazwę typu.

Using Static: Pomijanie nazwy klasy

[2:19 - 2:45] Forma using static celuje w konkretną klasę statyczną, a nie w przestrzeń nazw. Skierowanie jej na System.Console sprawia, że każdy statyczny element tej klasy jest dostępny bez prefiksu klasy:

using static System.Console;

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

WriteLine("Hello, world!");

Zamiast Console.WriteLine, wywoływana jest bezpośrednio WriteLine. Ta forma, która pojawiła się w .NET 6, jest najbardziej przydatna, gdy plik wielokrotnie wywołuje tę samą klasę statyczną. Eliminacja powtarzającej się nazwy klasy redukuje wizualny szum na każdym miejscu wywołania.

Alias Type: Nazewnictwo dowolnego typu

[3:41 - 6:40] .NET 8 rozszerzył składnię aliasów, dzięki czemu using może przypisać krótką nazwę dowolnemu typowi. Przypadkiem motywującym jest nazwana krotka. Krotki są powszechnymi typami zwracanymi, gdy metoda musi zwrócić kilka powiązanych wartości bez pełnej definicji klasy, ale deklarowanie tego samego typu krotki więcej niż raz w pliku powoduje wiele powtórzeń:

// 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();

Alias typu redukuje to do jednej deklaracji na początku:

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

Od tego momentu w pliku, Person zastępuje pełną definicję krotki:

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

Alias żyje tylko w obrębie pliku, w którym został zadeklarowany. Nie propaguje się w całej aplikacji. Należy zauważyć, że jeśli potrzebujesz, aby typ był dostępny w obrębie całego projektu, zapis lub klasa są odpowiednim wyborem.

Alias vs. Rekord lub Klasa

[5:32 - 6:23] Powszechne pytanie się pojawia: jeśli Person wygląda jak rekord, dlaczego po prostu nie zadeklarować jednego? Odpowiedź sprowadza się do zakresu i wagi. Rekord lub klasa to nazwany typ, który istnieje w całym projekcie, ma własny plik i musi być utrzymywany jako kod bazowy się rozwija. Alias krotki to lokalna wygoda w pliku. Gdy uzywasz dwu-polowego krotki dwa lub trzy razy w jednym pliku klasy, tworzenie pelnej definicji typu dodaje obciazenie konserwacyjne, ktore alias omija. Zamysłem zespołu .NET jest zapewnienie gradientu opcji, zamiast wymuszania binarnego wyboru między surową krotką a pełną klasą.

Wnioski

Trzy formy using obejmują różne potrzeby. Podstawowa dyrektywa przestrzeni nazw skraca kwalifikowane nazwy typów w całym pliku, podczas gdy using static usuwa prefiks klasy z wywołań statycznych elementów. Alias typowy .NET 8 przypisuje czytelną nazwę dowolnemu typowi, w tym krotkom, ograniczonym do pojedynczego pliku. Każda forma redukuje powtarzanie bez zmiany podstawowego zachowania twojego kodu.

Obejrzyj pełne wideo na kanale YouTube Tima Coreya channel dla na żywo demonstracji wszystkich trzech form w działającym projekcie .NET 8.

Hero Worlddot related to Dyrektywy using i aliasy typów C# w .NET 8
Hero Affiliate related to Dyrektywy using i aliasy typów C# w .NET 8

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie