Typy nullable w C# — wartościowe vs referencyjne
W poprzednim artykule “Class, struct czy record w C#?” ustaliliśmy, że struct to typ wartościowy — żyje na stosie (albo inline wewnątrz obiektu), nie może być…
Czytaj więcej →Wszystko o programowaniu w języku C#.
W poprzednim artykule “Class, struct czy record w C#?” ustaliliśmy, że struct to typ wartościowy — żyje na stosie (albo inline wewnątrz obiektu), nie może być…
Czytaj więcej →“Jaka jest różnica między class a struct?” to jedno z najczęstszych pytań rekrutacyjnych na Junior .NET Developera — i jedno z tych, na które większość kandydatów odpowiada teoretycznie (“struct…
Czytaj więcej →NullReferenceException to najczęściej spotykany wyjątek w kodzie .NET — i przez dekady C# nie dawał kompilatorowi żadnego sposobu, żeby ostrzec cię o nim wcześniej niż w runtime.…
Czytaj więcej →C# Records i wyrażenie with – niemutowalny kod bez boilerplate’u Mutowalne klasy w C# to jeden z najczęstszych powodów trudnych do wykrycia bugów, nieczytelnego kodu i…
Czytaj więcej →Ręczne parsowanie wzorców tekstowych przez IndexOf/Substring szybko robi się kruche — każdy nowy przypadek brzegowy to kolejny if. Wyrażenia regularne (regex) opisują wzorzec deklaratywnie, jednym ciągiem znaków, zamiast proceduralnie krok…
Czytaj więcej →Każde wywołanie Substring(), array.Skip(1).Take(3) czy string.Split() tworzy w pamięci nową kopię danych. W kodzie, który parsuje raz plik konfiguracyjny, to nieistotne. W kodzie, który parsuje tysiące wierszy na sekundę — te…
Czytaj więcej →Zaczynasz naukę C# i już na starcie trafiasz na ścianę nazw: .NET Framework, .NET Core, .NET 5, .NET 6, .NET 8, .NET 9… W dodatku ktoś…
Czytaj więcej →Wszystkie trzy frameworki robią to samo: uruchamiają metody testowe i sprawdzają, czy wynik jest zgodny z oczekiwaniem. Różnią się atrybutami, sposobem parametryzacji i tym, jak bardzo…
Czytaj więcej →Jeśli czytałeś o Span<T> w C#, znasz już problem: kopiowanie danych przy każdym Substring() czy wycinku tablicy kosztuje pamięć i czas GC. Span<T> to rozwiązuje — ale ma jedno poważne ograniczenie: jako ref…
Czytaj więcej →Tall LINQ vs Wide LINQ – jak pisać czytelny i bezpieczny LINQ w C# Pisanie zapytań LINQ w C# wygląda na proste… dopóki kod nie zacznie…
Czytaj więcej →Kolejny wzorzec z serii opartej na Anatomii wzorca — 8 elementach opisu GoF. Tym razem Command — wzorzec, bez którego trudno wyobrazić sobie funkcję “Cofnij” w jakimkolwiek edytorze. 1.…
Czytaj więcej →TDD w praktyce w C# .NET – Unit Testy, które projektują kod Test-Driven Development (TDD) w C# .NET to jedno z najbardziej niedocenianych narzędzi profesjonalnego programisty.…
Czytaj więcej →Znasz już async/await od strony języka — await zwalnia wątek na czas operacji I/O. Na serwerze ta sama mechanika ma inną stawkę: wątki pochodzą ze wspólnej…
Czytaj więcej →Używamy plików cookie do analityki i reklam. Możesz zmienić wybór w każdej chwili.
Polityka prywatności · Polityka cookies