lørdag den 18. maj 2013

Multicast Delegates

Alle delegate objekter har mulighed for at pege på ikke kun en men flere metoder. Dette kaldes multicast delegates. Et delegate objekt  kan altså vedligeholde en liste af metoder.

I indlægget Delegates knyttede vi metoden Velkommen.Tysk til delegaten Dele ved at bruge den som argument da vi instansierede delegaten.

VelkomstDelegate Dele = new VelkomstDelegate(Velkomst.Tysk);

Der er flere forskellige syntakser for at tilknytte endnu en metode til delegaten. En syntaks til at tilknytte metoden Velkomst.Engelsk kunne være:

Dele = Dele + Velkomst.Engelsk;

Typisk vil man bruge følgende syntaks der sematisk er det sammen som ovenstående:

Dele += Velkomst.Engelsk;

På samme måde kan man bruge - og -= operatorene til at fjerne metoder fra listen over metoder delegaten refererer til.

Man kan også assigne null til en delegate

Dele = null;

Delegates er immutable, så når man bruger operatorer som += på denne laver man i virkeligheden et nyt objekt i hukommelsen og peger delegaten på dette.

Har multicast delegaten en returtype er det retur værdien fra den sidste metode der returneres til den kaldende kode.




Ingen kommentarer:

Send en kommentar