public void TryToDoSomethingOnMyEventA()
 {
     if (MyEventA != null)
     {
         MyEventA("I can invoke Event in classA");                                                                  //invoke Event
         MyEventA.Invoke("I can invoke Event in classA");                                                           //invoke Event
         IAsyncResult result = MyEventA.BeginInvoke("I can invoke Event in classA", MyAsyncCallback, MyResetEvent); //Async invoke
         //user can check the public properties and fields of MyEventA
         System.Reflection.MethodInfo delegateAMethodInfo = MyEventA.Method;
         MyEventA  = testMethod;                      //reset reference
         MyEventA  = new MyDelegate(testMethod);      //reset reference
         MyEventA  = null;                            //reset reference
         MyEventA += testMethod;                      //Add delegate
         MyEventA += new MyDelegate(testMethod);      //Add delegate
         MyEventA -= testMethod;                      //Remove delegate
         MyEventA -= new MyDelegate(testMethod);      //Remove delegate
     }
 }