Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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}");
- }
Add Comment
Please, Sign In to add comment