Junior — Middle
Εξηγήστε τι είναι ένας multicast delegate και πώς λειτουργεί στο πλαίσιο των delegates .NET;
sobes.tech AI
Απάντηση από AI
Ο multicast-delegate στο .NET είναι ένας delegate που μπορεί να αποθηκεύει αναφορές σε πολλαπλές μεθόδους και να τις καλεί διαδοχικά κατά την κλήση του delegate.
Όταν προσθέτετε πολλές μεθόδους σε έναν delegate (μέσω του τελεστή +=), δημιουργείται μια αλυσίδα κλήσεων. Όταν καλείται αυτός ο delegate, όλες οι μέθοδοι σε αυτήν την αλυσίδα καλούνται με τη σειρά.
Παράδειγμα:
public delegate void Notify(string message);
Notify notifyHandlers = null;
void Handler1(string msg) => Console.WriteLine("Handler1: " + msg);
void Handler2(string msg) => Console.WriteLine("Handler2: " + msg);
notifyHandlers += Handler1;
notifyHandlers += Handler2;
notifyHandlers("Γειά");
Η έξοδος θα είναι:
Handler1: Γειά
Handler2: Γειά
Έτσι, οι multicast delegates είναι χρήσιμοι για την υλοποίηση γεγονότων και callbacks, όταν χρειάζεται να ειδοποιήσετε πολλούς συνδρομητές.