C# kérdés. Mi a delegate-ek értelme?
Nem egészen. Egy A osztály delegate nélkül csak akkor tudja meghívni B osztály egy függvényét, ha neki B osztályra van egy referenciája, tehát "ismeri" B osztályt.
De én pl. írok egy általános hálózati kommunikációs dll-t, mert jó fej vagyok, és fel akarom rakni a netre, hogy mindenki használhassa. És mondjuk van egy aszinkron modell megvalósítva, akkor az osztályom használóját úgy fogom tudni értesíteni arról, hogy megtörtént pl. az adat elküldése, ha visszahívom egy függvényét.
De mivel fogalmam sincs, hogy ki, milyen osztályból, hogyan fogja az én osztályomat használni, ezért ez csak úgy lehetséges, ha definiálok egy függvény-szignatúrát, és azt mondom, hogy ilyen típusú függvényt tudok meghívni, ha végeztem a küldéssel, és innentől kezdve nekem nem kell tudnom, hogy azt a függvényt ki és hol írta meg, még a neve se érdekel, csak a szignatúrája.
És pont erre való a delegate, hogy egy konkrét függvényt becsomagoljak egy ilyen általános objektumba(merthogy a delegate is objektum).
Ha van valami fogalmad C-ről, akkor fogd fel úgy, hogy egy függvény-mutató.
Akár. Bár annak, hogy egy függvény statikus, oka van, tehát nem szoktak ilyet gyakorlatban csinálni.
Talán az event a legjobb példa arra, hogy mire jó a delegate.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!