Figure 9 Anonymous Method Code with Outer Variables
กก
class SomeClass
{
   string m_Space = " ";    
   delegate void SomeDelegate(string str);

   private sealed class __LocalsDisplayClass$00000001
   {
      public SomeClass <this>; //Back pointer, name is valid in MSIL
      public string msg;       //Outer variable
      public void __AnonymousMethod$00000000(string name) 
      {
         MessageBox.Show(msg + <this>.m_Space + name);
      }
   }   
   public void InvokeMethod() 
   {
      string msg = "Hello";
      __LocalsDisplayClass$00000001 locals;
      locals = new __LocalsDisplayClass$00000001();
      locals.<this> = this;
      locals.msg = msg;
      SomeDelegate del = new 
          SomeDelegate(locals.__AnonymousMethod$00000000);
      del("Juval");
}