Zdarzenia w C# - od podstaw po ciemną stronę. Poznaj EventHandler, ale też dowiedz się, dlaczego społeczność .NET coraz częściej sięga po Rx.NET, Channels czy MediatR zamiast klasycznych eventów.
Skrócona forma delegatów, czyli metoda inline nazywana funkcją anonimową, to nie tylko zwięzły zapis, ale i kontekst dostarczany przez kompilator. Umożliwiają one szybsze i bardziej intuicyjne tworzenie kodu, pozwalając programiście na bezpośrednie umieszczanie logiki tam, gdzie jest potrzebna, bez konieczności definiowania osobnych metod.
Discover
Referencja do metody, czyli Delegate, w praktyce pozwala na dynamiczne przypisywanie i wywoływanie metod. Aby stworzyć delegata, definiujesz typ delegata odpowiadający sygnaturze metody, a następnie przypisujesz do niego metodę. Wywołanie delegata jest równoznaczne z wywołaniem metody, do której się odnosi.
Podstawą języka C# jest statyczne określanie typów, jednak w pewnych sytuacjach, dzięki typowi dynamic, język pozwala na bardziej dynamiczne wykorzystanie, co posiada specjalne przywileje u CLR, umożliwiając wykonanie operacji niedostępnych dla innych typów w trakcie kompilacji.
Kowariancja i kontrawariancja w C# to mechanizmy kontrolujące, jak typy generyczne mogą być konwertowane. Dowiedz się, dlaczego IEnumerable<Rectangle> można przekazać jako IEnumerable<Square>, ale ICollection<Rectangle> już nie. Poznaj słowa kluczowe out i in, które decydują o bezpieczeństwie konwersji typów.
Krótka notatka dotycząca klas częściowych, zawierająca informacje jak korzystać z partial oraz gdzie są wykorzystywane, podkreślając, że umożliwiają one rozdzielenie definicji klasy na kilka plików, co jest szczególnie przydatne w narzędziach generujących kod, takich jak Visual Studio przy tworzeniu interfejsów użytkownika w WinForms.