Several time, people says delegate it's really difficult to use. The principal reason to share this idea is you don't use enough the event/delegate. You need to understand why it is better to use not simple function or simple method, but you need to be convince it's better to use event/delegate.
So below I propose some codes for each cases.