Kilka słów o klasie Tuple będącą kontenerem dla zbioru wartości o określonym rozmiarze, czyli coś pomiędzy tablicą a kolekcją. Dzięki swej elastyczności, Tuple umożliwia szybkie grupowanie różnotypowych danych w jednej, łatwo dostępnej strukturze, zachowując przy tym wygodę i prostotę w użyciu.
Po omówieniu podstaw interfejsów kolekcji w .NET, teraz skupimy się na konkretnych typach kolekcji, takich jak Collection<T>, ReadOnlyCollection<T>, Dictionary<TKey, TValue>, i wiele innych, wraz z ich zastosowaniami i różnicami. Przejdziemy również przez kolekcje współbieżne, oferujące bezpieczeństwo operacji w środowiskach wielowątkowych.
W niniejszej notatce zgłębiamy tematykę iteratorów w C#, które umożliwiają generowanie sekwencji wartości za pomocą instrukcji yield return. Przybliżamy sposób działania i zastosowania tej składni, przedstawiając przykłady jej praktycznego wykorzystania w celu zrozumienia, jak iterator może zrewolucjonizować sposób przetwarzania kolekcji danych, pozwalając na elastyczne generowanie i przekazywanie wartości na żądanie.
W notatce omawiamy zaawansowane aspekty kolekcji w .NET, wyjaśniając, jak za pomocą interfejsów IList, ICollection, i IEnumerable można efektywnie zarządzać "tablicami" zmiennej długości. Szczegółowo analizujemy różnice między tymi interfejsami oraz ich praktyczne zastosowanie w kontekście zarządzania kolekcjami elementów w aplikacjach .NET.
Czym są typy oraz metody ogólne? Krótko i treściwie, o tym jak korzystać z argumentu typu określanego podczas kompilacji kodu, umożliwiającego tworzenie bardziej elastycznych i ponownie używalnych komponentów kodu, które mogą pracować z różnymi typami danych bez konieczności ich specyfikowania na etapie pisania kodu źródłowego.
Discover
W C# często spotykamy się z koniecznością konwersji pomiędzy różnymi typami liczbowymi, jak również z sytuacjami, gdy wartość przekracza zakres danego typu. W tej notatce przyjrzymy się, jak zarządzać konwersją typów i przygotować się na potencjalne przepełnienia.
Discover
Notatka jest kontynuacją obsługi wyjątków, oferując szczegółowe spojrzenie na podstawowe typy wyjątków, przykład implementacji własnego wyjątku oraz wybrane ciekawostki dotyczące mechanizmów wyjątków w .NET, wzbogacając tym samym zrozumienie i umiejętności programisty w zakresie efektywnego zarządzania błędami w aplikacjach.
Discover
Jak przygotować się na nieprzewidziane? Czyli jak mądrze zarządzać wyjątkami zgłaszanymi przez kod. W tej notatce dowiemy się, jak obsługiwać sytuacje wyjątkowe w języku C# i omówimy różne techniki, począwszy od podstawowego wykorzystania bloków try i catch, po bardziej zaawansowane konstrukty, takie jak zagnieżdżanie bloków obsługi wyjątków czy stosowanie finally.
Interfejsy podobnie jak klasy i struktury deklarują właściwości, metody oraz zdarzenia. Z tą różnicą, że na deklaracji ich zadanie się kończy. Właściwa definicja została przeniesiona na typy implementujące interfejsy. Dzięki temu mechanizmowi możliwe jest zapewnienie elastyczności w projektowaniu oprogramowania, umożliwiając różnym klasom współdziałanie poprzez wspólne interfejsy.
Discover
Typy anonimowe zostały dodane na potrzeby technologii LINQ, a ich zastosowanie ogranicza się głównie do definiowania niestandardowych kryteriów wyszukiwania czy grupowania. Mimo to należy o nich wspomnieć, gdyż ułatwiają szybką i przejrzystą implementację pewnych funkcjonalności.
Discover