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.
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