delegate void Print(string patrametar); Print deleg1; deleg1 = Log; //S obzirom da je delegat niz metoda, one se mogu ulancavati operatorom += deleg1 += LogWithDate; //DressCode ce se logovati na konzoli dva puta - prvi put bez datuma, a drugi put sa njim deleg1("DressCode"); //Ukoliko zelite da neka metoda vise ne bude pozivana kada se delegat pozove, mozete je obrisati iz liste koriscenjem operatora -= deleg1 -= LogWithDate; //Znak jednakosti brise sve prethodne reference na metode. U ovom slucaju je LogWithDate jedina metoda na koju se pokazuje deleg1 = LogWithDate; //Brisanje iz interne liste svih metoda na koje je delegat pokazivao deleg1 = null; //Ovde se pojavljuje NullReferenceException izuzetak zato sto delegat nema nijednu metodu na koju pokazuje deleg1("DressCode"); //Zato je kod pozivanja delegata najbolje koristiti Null-Conditional operator, koji ce da vas zastiti od NullReferenceException izuzetka deleg1?.Invoke("DressCode"); void Log(string str){ Console.WriteLine(str); } void LogWithDate(string str){ Console.WriteLine($"{DateTime.Now.ToString()} {str}"); }