Przetwarzanie kolekcji z Linq to Object cz1

Linq Linq jest językiem zapytań, który dodaje warstwę abstrakcji pomiędzy różnymi typami danych a obiektami. Zapytania można zapisać na dwa sposoby: Składnia zapytań, gdzie zapis linq jest podobny do zapytań SQL-owych, nie mniej jednak dla mnie jest mało intuicyjny i z tego sposobu nie korzystam. Przykładowe zapytanie [crayon-673f019b3ada6191479905/] Fluent Api,…

Typy generyczne

Typy generyczne Typy generyczne umożliwiają zbudowanie klas, które działają na jeszcze nie zdefiniowanym typie. Dzięki temu możemy przygotować klasy, których metody operują na specyficznym typie i umożliwiają statyczne sprawdzenia poprawności typów, czego nie można by osiągnąć operując na typie Object.

Zdarzenia – wywołanie, wykorzystanie i obsługa

Zdarzenia Jeśli chcemy, ażeby jakiś fragment kodu reagował na zdarzenia z innego obiektu musimy przypisać funkcję obsługującą zdarzenie. Metoda obsługująca zdarzenie powinna przyjmować  dwa parametry: obiekt klasy Object, który informuje przez co zostało wywołane zdarzenie obiekt z argumentami zdarzenia typu dziedziczącego po EventArgs Przypisanie wygląda następująco [crayon-673f019b3b96c359987444/] W pierwszym przypadku…

Metoda using

Metoda using Wykorzystywany jest w przypadkach, gdy pracujemy z obiektami, które powinny być w bezpieczny sposób usunięte z pamięc, i takich jak strumienie, readery czy połączenia sieciowego. W tym przypadku niezależnie od tego czy coś się stanie możemy wykorzystać blok try{}finally{}, o którym pisałem ostatnio https://mateuszstanek.pl/2018/02/13/obsluga-wyjatkow/

Yield – Leniwe kolekcje

Yield Instrukcja Yield wykorzystywana jest do tworzenia kolekcji, gdzie kolejne elementy kolekcji są tworzone w momencie ich wykorzystania. Umożliwia to zaoszczędzenie pamięci oraz przyśpieszenie działania aplikacji. Jeśli chcemy wygenerować obiekty naszej listy możemy wykorzystać instrukcję yield return: [crayon-673f019b3c01e378601084/] Metoda generująca nasze elementy zostanie wykonana dopiero w momencie odczytu elementu poprzez…