Delegates are object-oriented versions of function pointers. A delegate contains two references: one to an object instance and another to the method on that object. Delegates do not understand the type of the class they point to; they simply care about the signature of the method they are defined for.
Delegates are used in the Reflection classes as callback methods. This allows user control of some of the information provided by some methods. Typically, delegates are used in methods that return arrays of objects and allow for filtering of the results set. The NGWS Frameworks provides a set of standard delegates that provide common filtering.
For more information, see Delegates.