Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.07.12
Prihlásený: 10.11.13
Príspevky: 1
Témy: 1
Príspevok NapísalOffline : 14.07.2012 17:21

Ahojte, vedel by mi niekto ľudsky vysvetliť čo sú to tí delegáti v C#?
+ aký je rozdiel medzi týmto fragmentom
Kód:
Thread t = new Thread(new ThreadStart(Pis));
a týmto:
Kód:
Thread t = new Thread(Pis);
... pričom "Pis" je metóda ktorá vypíše slovo Ahoj a v obidvoch prípadoch sa vykoná to isté? Diky :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.12.10
Prihlásený: 30.05.23
Príspevky: 94
Témy: 21
Bydlisko: Pezinok
Príspevok NapísalOffline : 09.10.2012 13:47

Delegát je dátový typ (ako napríklad object alebo Int32) ktorý odkazuje na metódu. Akonáhle je delegátu priradená nejaká metóda správa sa presne ako akákoľvek iná metóda v rámci objektu. Používa sa najmä v spojitosti s eventami. Príklad. Máš na formulári Button objekt a potrebuješ aby nejakým spôsobom reagoval na kliknutie (dajme tomu, že potrebuješ otvoriť dialógové okno na uloženie súboru). Čo spravíš v kóde je
Kód:
mybutton.Click += new EventHandler(myDelegate);//myDelegate nie je nič iné len metóda ktorú si naprogramuješ
//keď užívateľ klikne na Button otvorí sa "Uložit" dialógové okno
private void myDelegate(sender object, EventArgs e)
{
  SaveFileDialog saveFileDialog1 = new SaveFileDialog();
  saveFileDialog1.ShowDialog();
}

Je to vlastne spôsob ako "pripájať" nový kód do už existujúceho.

Medzi prvým a druhým kusom kódu nie je v konečnom dôsledku žiadny rozdiel. Akonáhle je metóda Pis definovaná ako
Kód:
public static void Pis(){}
tak sa jednoducho zavolá pri volaní metódy
Kód:
Thread.Start();
pretože prvý parameter triedy Thread je definovaný ako delegát a ty mu len priraďuješ najakú hodnotu (ako premennej - len hodnotou tej premennej je adresa metódy)


Odpovedať na tému [ Príspevkov: 2 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Schéma: Menič pre vlákna

v Elektronika

0

1056

23.01.2007 5:27

Elektronic Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I3- 2 jadra 4 vlakna

v Intel - Integrated Electronics

1

541

29.10.2012 11:52

EndersoN Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. i5 M450 - zobrazuje len 2 vlakna

v Intel - Integrated Electronics

1

425

20.11.2012 23:00

brmbo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra