Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Prvi vizual:
- //Na ovaj delegat mogu da se pretplate metode koje nemaju povratnu vrednost i primaju parametar string. //Samo na prvom vizualu ostavi ovaj komentar, na ostalima je nepotrebno
- delegate void Print(string patrametar);
- //Delegate definisete kao obicne promenljive //Ovde isto to vazi
- Print deleg1;
- //Delegatu dodeljujete adresu metode Log
- deleg1 = Log;
- //Pozvace se metoda Log i ispisace se DressCode u konzoli
- deleg1("DressCode");
- //Nije moguce da se metoda sa drugacijim potpisom pretplati na ovaj delegat
- //deleg1 += MultiplyByTwo; //MultiplyByTwo prima i vraca integer, dok delegat Print ne vraca nikakvu vrednost i prima parametar string
- void Log(string str){
- Console.WriteLine(str);
- }
- int MultiplyByTwo(int number){
- return number * 2;
- }
- Drugi Vizual:
- delegate void Print(string patrametar);
- Print deleg1;
- deleg1 = Log;
- //S obzirom da je delegat niz metoda, mozete da ih ulancavate opeartorom +=
- 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 kod pozivanja delegata je najbolje koristiti null-conditional operator, koji ce vas zaštiti od NullreferenceException izuzetka
- deleg1?.Invoke("DressCode");
- void Log(string str){
- Console.WriteLine(str);
- }
- void LogWithDate(string str){
- Console.WriteLine($"{DateTime.Now.ToString()} {str}");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement