How delegates work (in the background)?
<p>How do delegates work in c# behind the scenes and how can they be used efficiently? </p>

<p>EDIT: I know how they work on the surface(they are basically function pointers and allow callback methods with certain signatures to be invoked using their address).  What I need to know is how the CLR actually implements them internally. What exactly happens behind the scenes when you define a delegate and when you invoke a callback method using the delegate object?</p>
