When I was looking at the Action
delegates in Reflector, I saw it has a constructor like
public Action(object @object, IntPtr method);
But I could not find any body for the same along with other member functions like Invoke
, BeginInvoke
etc. I can only see the definitions for it. Where does these functions are defined? Are they defined outside of the .net BCLs?
Delegates are handled specially by the CLR, basically. The compiler provides the signatures, but the CLR knows what to do with them.
Section 8.9.3 of ECMA-335 partition I talks about this:
(VES is the Virtual Execution System; the CLR is Microsoft's implementation of the VES.)