Все, что действует как событие, является здесь классическим ответом - тогда вызывающему абоненту не нужно знать, кто слушает (просто вызовите его, если оно не равно нулю). Это идеально, поскольку несколько операций могут подписываться одновременно - например, 3 отдельных элемента управления, наблюдающих (привязка данных) к одному и тому же свойству в модели представления.
Любые случаи, когда делегат действует как функция (в частности, с возвращаемым значением), является хитрым, так как вам нужно подумать, как вы справитесь с этим - взять первое? Прошлой? Совокупные