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
typeofi 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