Warm tip: This article is reproduced from serverfault.com, please click

When & why to use delegates?

发布于 2010-01-07 09:51:56

I'm relatively new in C#, & I'm wondering when to use Delegates appropriately. they are widely used in events declaration, but when should I use them in my own code and why are they useful? why not to use something else?

I'm also wondering when I have to use delegates and I have no other alternative.

Thank you for the help!

EDIT: I think I've found a necessary use of Delegates here

Questioner
Unknown
Viewed
11
community wiki 2016-08-19 04:18:34

I agree with everything that is said already, just trying to put some other words on it.

A delegate can be seen as a placeholder for a/some method(s).

By defining a delegate, you are saying to the user of your class, "Please feel free to assign, any method that matches this signature, to the delegate and it will be called each time my delegate is called".

Typical use is of course events. All the OnEventX delegate to the methods the user defines.

Delegates are useful to offer to the user of your objects some ability to customize their behavior. Most of the time, you can use other ways to achieve the same purpose and I do not believe you can ever be forced to create delegates. It is just the easiest way in some situations to get the thing done.