Sobes.tech
Junior — Middle

Објасните сврху и рад делегата у контексту програмирања у C#.

sobes.tech АИ

Одговор од АИ

Delegati u C# su tipovi koji predstavljaju reference na metode sa određenom potpisom. Oni omogućavaju pozivanje metoda indirektno, prosleđivanje kao parametara i implementaciju povratnih poziva.

Glavne tačke:

  • Delegat definiše potpis metode (tipove parametara i povratnu vrednost).
  • Može se dodeliti bilo koja metoda sa kompatibilnim potpisom delegatu.
  • Omogućavaju implementaciju događaja i obrasca posmatrača.

Primer:

public delegate void Notify(string message);

public class Process
{
    public Notify OnCompleted;

    public void Start()
    {
        // ... rad
        OnCompleted?.Invoke("Proces je završen");
    }
}

Ovde, delegat Notify se koristi za obaveštavanje o završetku procesa.