Det var så lidt, og ja, AHA oplevelsen måtte jeg også lede længe efter. Men kunne forestille mig at der var flere der kunne komme med et par eksempler mere du kan bruge, inden du lukker den. Jeg kom selv på to mere jeg havde glemt i første omgang:
1) Multithreading: Hele konceptet omkring Multi threading bygger op omkring delegates, da du ikke kan sætte en tråd igang, uden at fortælle den hvad den skal udføre. Så her er delegates helt klart også nødvendigt. Hvis du vil vide mere om det, kan jeg f.eks. anbefale
at læse dette indlæg om .NET 4.0 Task Parallel Library.2) Delayed execution: Der er flere tilfælde, hvor der er kode du ønsker at eksekvere senere, som du ikke nødvendigvis har adgang til i den kontekst du er i på eksekveringstidspunktet. Det har flere brugs scenarier. Det ene kan være en måde at lave en lazy konstrutør på, hvor du ikke vil initialisere et objekt medmindre der er brug for det; eller hvis du har et framework hvor du har brug for at kunne kalde konstrutøren på objekter direkte, kan det gøres med callback's i stedet; og ja, find selv på flere, hvor det kan være brugbart at udføre noget senere.
@Arne: Er der fordele ved dit eksempel der ikke kunne være løst lige så godt, eller bedre, med et nedarvningshierarki? Det ville også give en mere genbrugelig tilgang? Eller er der fordele ved den tilgang du kommer med, som jeg misser?