Przejdź do treści stopki
Iron Academy Logo
Co nowego w C# i .NET

Jak nowe słowo kluczowe field usprawnia właściwości C#

Tim Corey
10m 40s

Właściwości C# są kluczowym elementem sposobu, w jaki dane są dostępne i chronione wewnątrz klasy. Znajdują się pomiędzy prywatnymi członkami danych a publicznym dostępem, pozwalając programistom kontrolować, jak wartości są odczytywane i zapisywane. W swoim wideo "How The New Field Keyword Improves Properties in C# 14 in 10 Minutes or Less" Tim Corey wyjasnia, jak C# 14 wprowadza istotne usprawnienie wlasciwosci poprzez nowe slowo kluczowe field.

W tym artykule przyjrzymy się bliżej właściwościom w C#, krok po kroku analizując wideo Tima. Wyjaśnienia Tima są praktyczne i oparte na przykładach, pokazując, jak nowe słowo kluczowe ulepsza automatycznie implementowane właściwości, upraszcza walidację i zmniejsza natłok kodu — bez zmiany składni, na której programiści już polegają. Celem tutaj jest lepsze zrozumienie wlasciwosci C# poprzez sledzenie dokladnego rozumowania i demonstracji Tim'a.

Overview of C# Properties and the Upgrade in C# 14

Tim zaczyna od wyjaśnienia, że w C# 14 następuje duża aktualizacja dotycząca właściwości C#. Klaruje, że wideo koncentruje się na nowym słowie kluczowym field, które wpływa na działanie automatycznych właściwości wewnętrznie. Tim wspomina również, że C# 14 zostanie wydany razem z .NET 10 oraz Visual Studio 2026, chociaż sama funkcja może działać w wcześniejszych wersjach .NET.

Przedstawia wideo jako szybkie, skoncentrowane wyjaśnienie, zaprojektowane, aby odpowiedzieć na jedno konkretne pytanie: jak używać tej nowej funkcji w rzeczywistym kodzie? Nadaje to ton praktycznemu przewodnikowi, a nie teoretycznej dyskusji na temat definicji właściwości.

Przyklad klasy Person oraz wlasciwosci automatyczne

Około 0:23 Tim przedstawia aplikację konsolową z prostą, publiczną klasą Person. Ta klasa Person zawiera kilka publicznych właściwości, w tym:

  • public string FirstName

  • public string LastName

  • public int Age

Tim wyjasnia, ze sa to wlasciwosci automatycznie implementowane (zwane rowniez automatycznie wdrożonymi wlasciwosciami). Nie ma widocznych prywatnych zmiennych ani pól prywatnych, poniewaz kompilator automatycznie tworzy pole zaplecza w tle.

Zawiera również wlasciwosc Demo, która nie jest automatycznie implementowana. Zamiast tego używa prywatnego pola przechowującego typu string (_demo) i udostępnia tylko do odczytu właściwość za pomocą wyłącznie akcesora get. Ten kontrast staje się ważny później w filmie.

Korzystanie z wlasciwosci w Program.cs

Tim przechodzi następnie do klasy Program i pokazuje, jak obiekt Person jest tworzony wewnątrz public static void main (lub static void main string args, koncepcyjnie). Tworzy nową osobę, używając:

new Person { FirstName = "Tim", LastName = "Corey" }

Tim zwraca uwagę, że właściwości umożliwiają dostęp zewnętrzny do klasy, jednocześnie ukrywając prywatne elementy danych. Pobiera wartosci, takie jak nazwisko, wiek i demo, pokazujac, jak wlasciwosci wygladaja tak samo jak pola podczas dostepu do nich, nawet jesli sa one w rzeczywistosci specjalnymi metodami pod spodem.

Problem z nieprawidłowymi wartościami w automatycznych właściwościach

Około 1:23, Tim celowo przypisuje nieprawidłową wartość:

person.LastName = null;

Mimo że LastName jest wymagane i nie jest oznaczone jako nullable, przypisanie wciąż działa w czasie wykonywania. Tim wyjaśnia, że właściwości automatyczne nie chronią automatycznie przed nieprawidłowymi wartościami. Kompilator ostrzega, ale metoda set nadal akceptuje wartosc.

To demonstruje kluczowy problem z automatycznie implementowanymi właściwościami: chociaż są zwięzłe, nie oferują wbudowanego sposobu na dodanie walidacji. Nieprawidłowe dane mogą przejść i po cichu złamać założenia.

Tradycyjna pełna właściwość z polem zaplecza

Około 2:58 Tim pokazuje, co programiści robili we wcześniejszych wersjach C#. Konwertuje LastName na w pełni zaimplementowaną właściwość za pomocą:

  • Prywatne pole pomocnicze typu string

Akcesor set, który sprawdza wartość właściwości

Wyjątek wyrzucany dla nieprawidłowych wartości

To podejście daje pełną kontrolę nad akcesorami właściwości, ale Tim podkreśla, jak bardzo staje się rozwlekłe. Wlasciwosc teraz zajmuje kilka linii w porównaniu z jednolinijkowa składnią auto wlasciwosci.

Wyjasnia rowniez, ze przelaczenie z wlasciwosci auto na wlasciwosc pelna nie powoduje problemow z istniejacym kodem, poniewaz nazwa wlasciwosci, poziom dostepnosci i zewnetrzne uzycie pozostaja takie same.

Nowe słowo kluczowe field jako złoty środek

O godzinie 4:19 Tim wprowadza kluczową poprawę w C# 14. Zamiast pisać pełną własność, zachowuje ona strukturę właściwości automatycznej i modyfikuje jedynie akcesor set przy użyciu słowa kluczowego field.

Tim wyjaśnia, że pole reprezentuje wygenerowane przez kompilator prywatne pole, które normalnie pozostaje ukryte. Przypisując field = value, programiści mogą teraz przechwycić i zweryfikować wartość właściwości bez deklarowania własnej prywatnej zmiennej.

Zachowuje to tę samą składnię, do której programiści są przyzwyczajeni, jednocześnie dodając elastyczność. Tim podkreśla, że to zmniejsza ilość kodu, jednocześnie umożliwiając logikę walidacyjną, umieszczając ją między właściwościami automatycznymi a pełnymi właściwościami.

Zakresowe Pola Pomocnicze i Izolacja Właściwości

Tim wyjaśnia, że słowo kluczowe field jest ograniczone zakresem do właściwości, w której się pojawia. Kazda wlasciwosc otrzymuje wlasne pole zapasowe, a ryzyko zaklocen miedzy wlasciwosciami nie wystepuje.

Jesli ta sama skladnia jest uzyta w innej wlasciwosci—takiej jak FirstName—odnosi sie to do wlasnego pola zaplecza tej wlasciwosci. Dzieki temu funkcja jest przewidywalna i bezpieczna do uzycia w wielu publicznych wlasciwosciach.

Walidacja numerycznych wlasciwosci, takich jak wiek

Około 6:16 Tim stosuje to samo podejście do publicznej właściwości int Age. Przypisuje nieprawidłową wartość ujemną i wyjaśnia, dlaczego nie powinno to być dozwolone.

Zamiast rzucania wyjątku, Tim pokazuje inną strategię: ignorowanie nieprawidłowych wartości. Metoda set sprawdza, czy wartosc znajduje sie w poprawnym zakresie przed przypisaniem jej do pola.

To pokazuje, że nowe podejście działa równie dobrze dla typu int age, walidacji numerycznej oraz logiki warunkowej—wszystko to bez potrzeby przekształcania właściwości w pełną implementację.

Konflikty nazw z kluczowym słowem field

Tim omawia następnie potencjalny przypadek brzegowy: konflikty nazw. Jesli klasa juz zawiera zmienna o nazwie field, moze to kolidowac z nowym slowem kluczowym wewnatrz wlasciwosci.

Pokazuje, jak to powoduje zamieszanie i niespodziewane zachowanie. Tim wyjaśnia, że rozwiązaniem jest jawne odwołanie się do zmiennej, używając this.field lub @field. To odróżnia nazwę zmiennej od słowa kluczowego pola wspierającego.

Tim stanowczo zaleca zmienianie nazw takich zmiennych jako dobrą praktykę, zwłaszcza podczas aktualizacji istniejących baz kodu.

Gdzie konflikty nazw nie mają zastosowania

Tim wyjaśnia, że słowo kluczowe "field" ma specjalne znaczenie tylko wewnątrz akcesorów właściwości. W konstruktorach, metodach lub innych częściach klasy pole zachowuje się jak zwykła zmienna.

To rozróżnienie pomaga programistom zrozumieć, kiedy istnieje pole pomocnicze generowane przez kompilator, a kiedy nie.

Ostateczne myśli Tima Corey

Tim konczy swoje wideo, podsumowujac, jak dziala nowe slowo kluczowe field i dlaczego poprawia wlasciwosci w C#. Pozwala programistom nadal korzystać z właściwości automatycznych, jednocześnie dodając walidację, kontrolę i jasność.

Zacheca widzow do wyprobowania funkcji, zbadania, jak pasuje do ich stylu kodowania, oraz do przemyslenia konwencji nazewniczych. Tim konczy wideo, podkreslajac, ze ta zmiana czyni wlasciwosci bardziej ekspresyjnymi, nie dodajac zbednej zlozonosci.

Hero Worlddot related to Jak nowe słowo kluczowe field usprawnia właściwości C#
Hero Affiliate related to Jak nowe słowo kluczowe field usprawnia właściwości C#

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