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

Tim Corey
9m 03s

Slowo kluczowe using w C# robi więcej niż jedną 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 samego początku, importy klas statycznych pojawiły się w .NET 6, a .NET 8 rozszerzyło składnię aliasów, aby obejmować 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 bada każdą formę dyrektywy using w aplikacji konsolowej .NET 8, opierając się na prezentacji Tima Coreya najnowszych funkcji. 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 deklaracji using na początku, wywołanie Console.WriteLine wymaga użycia w pełni kwalifikowanej nazwy: System.Console.WriteLine. Dodanie jednej dyrektywy to rozwiązuje:

using System;
using System;

Ta jedna linia sprawia, że każdy typ w System jest dostępny pod 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ą zamiast przestrzeni nazw. Wskazując na System.Console, każdy statyczny członek 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łujesz 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, aby using mogła przypisać krótką nazwę do dowolnego typu. 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] Pojawia się często zadawane pytanie: jeśli Person wygląda jak rekord, dlaczego po prostu go nie zadeklarować? 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 zaspokajają 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 członkó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!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie