예제 #1
0
 private void ApplyDel(ObjectObject d, params object[] p)
 {
     if (d != null)
     {
         object obj2;
         FunctionObject obj3;
         d.FindFirstInvocation(out obj2, out obj3);
         while (obj3 != null)
         {
             this.code.CallMethodEx(RunMode.Run, obj2, obj3.Id, p);
             d.FindNextInvocation(out obj2, out obj3);
         }
     }
 }
예제 #2
0
 internal ObjectObject AddDelegates(ObjectObject d1, ObjectObject d2)
 {
     object obj4;
     FunctionObject obj5;
     bool flag;
     ObjectObject obj3 = d1.Class_Object.CreateObject();
     for (flag = d1.FindFirstInvocation(out obj4, out obj5); flag; flag = d1.FindNextInvocation(out obj4, out obj5))
     {
         obj3.AddInvocation(obj4, obj5);
     }
     for (flag = d2.FindFirstInvocation(out obj4, out obj5); flag; flag = d2.FindNextInvocation(out obj4, out obj5))
     {
         obj3.AddInvocation(obj4, obj5);
     }
     return obj3;
 }
예제 #3
0
 private bool CompareDelegates(ObjectObject d1, ObjectObject d2)
 {
     if (d1.InvocationCount == d2.InvocationCount)
     {
         object obj2;
         object obj3;
         FunctionObject obj4;
         FunctionObject obj5;
         bool flag = d1.FindFirstInvocation(out obj2, out obj4);
         for (flag = d2.FindFirstInvocation(out obj3, out obj5); flag; flag = d2.FindNextInvocation(out obj3, out obj5))
         {
             if ((obj2 != obj3) || (obj4 != obj5))
             {
                 return false;
             }
             flag = d1.FindNextInvocation(out obj2, out obj4);
         }
         return true;
     }
     return false;
 }