Sobes.tech
Junior — Middle

Wyjaśnij cel i działanie delegatów w kontekście programowania w C#.

sobes.tech AI

Odpowiedź od AI

Delegaty w C# to typy, które reprezentują odwołania do metod o określonej sygnaturze. Pozwalają wywoływać metody pośrednio, przekazywać je jako parametry i implementować wywołania zwrotne.

Główne punkty:

  • Delegat określa sygnaturę metody (typy parametrów i wartość zwracaną).
  • Do delegata można przypisać dowolną metodę o pasującej sygnaturze.
  • Umożliwiają implementację zdarzeń i wzorca obserwatora.

Przykład:

public delegate void Notify(string message);

public class Process
{
    public Notify OnCompleted;

    public void Start()
    {
        // ... praca
        OnCompleted?.Invoke("Proces zakończony");
    }
}

Tutaj delegat Notify służy do powiadamiania o zakończeniu procesu.