3 nowości w C# 11, na które zwróciłem uwagę
W poprzednim wpisie wspomniałem o 3 zmianach w ASP.NET 7, które mnie zainteresowały z punktu widzenia codziennej pracy. Tym razem mam dla Was 3 featury samego języka z C# w wersji 11, które uznałem za przydatne w mojej codziennej pracy. Oznacza to, że niekoniecznie są to najciekawsze, albo największe zmiany jakie się pojawiły.
Nie przedłużając, 3 zmiany, które uznaję za przydatne, albo potencjalnie przydatne na co dzień to:
- „Nieprzetworzone” stringi – coś co na pewno się przydaje kiedy chociażby wypisujemy logi, albo po prostu budujemy kawałek kodu, który musi posklejać jakiś tekst. Koniec z mozolnym eskejpowaniem wszystkich znaków specjalnych. Od teraz można dostać string, który jest dokładnie taki, jak go wpiszecie w kodzie, ze wszystkimi znakami specjalnymi, nowymi liniami, itp. – wystarczy skorzystać z potrójnego znaku cudzysłowu.
- Wymagane pola/właściwości – po prostu kolejny krok w stronę maksymalnej eliminacji błędów już na etapie kompilacji. Nowe słowo kluczowe, które pozwala oznaczyć w klasie pola lub właściwości, które muszą być zainicjowane zawsze – czy to we wszystkich konstruktorach, jakie napiszemy w klasie, czy też za każdym razem kiedy korzystamy z inicjowania obiektu. Teraz nikt nie zapomni ustawić wartości w kluczowych miejscach
- Generyczne atrybuty – prosta rzecz, która upraszcza życie. Do tej pory, jeżeli musieliśmy przekazać typ do naszej klasy atrybutu, to trzeba to było robić przez
typeof
i konstruktor. Teraz wystarczy napisać klasę atrybutu jako generyczną – proste i skuteczne
To tyle jeżeli chodzi o moje top 3. Jednak tutaj dodam, że wśród zmian (które wszystkie znajdziecie w Dev Blogu Microsoftu) są też takie, które uważam, że mogą zaszkodzić. Jednym z takich elementów jest możliwość pisania wielolinijkowych fragmentów kodu w ramach interpolacji stringów. Argumentują to tym, że pozwala to skorzystać np. ze switcha z pattern-matchingiem. Jednak ja widzę tutaj furtkę to pisania bardzo nieczytelnego kodu, który zamiast zostać podzielony na funkcje, to wisi w postaci ciągnących się instrukcji podczas sklejania tekstów.
A Wy uważacie, że rozwój języka C# idzie w dobrym kierunku?
Leave a Comment