Sobes.tech
Junior — Middle

Wyjaśnij koncepcję delegatów w języku C# i ich główne przeznaczenie.

sobes.tech AI

Odpowiedź od AI

Delegaty w C# to typy reprezentujące odwołania do metod o określonej sygnaturze i wartości zwrotnej. Pozwalają na przechowywanie i wywoływanie metod jako obiektów.

Głównym celem delegatów jest:

  • Umożliwienie implementacji wywołań zwrotnych (callbacks)
  • Zapewnienie elastyczności przy wywoływaniu metod, np. dla zdarzeń i obsługi operacji asynchronicznych
  • Służą do implementacji modelu opartego na zdarzeniach

Przykład delegata:

// Deklaracja delegata
public delegate void Notify(string message);

class Program
{
    static void Main()
    {
        Notify notifyHandler = ShowMessage;
        notifyHandler("Witaj, delegaty!");
    }

    static void ShowMessage(string msg)
    {
        Console.WriteLine(msg);
    }
}

Tutaj delegat Notify może odwoływać się do dowolnej metody przyjmującej łańcuch znaków i nic nie zwracającej.