簡單說就是可以讓內部程式呼叫外部程式的事件
,內部程式指的是底層的程式碼,任何人都不能
去動到,除了寫底層的設計師,外部程式是任何
設計師可以去改的地方,我現在想要從內部程式
自動去呼叫外部程式的事件,這就必須請Delegate
大師過來了。
我現在假設我有
A程式碼(外部)
B程式碼(內部)
B:
public delegate int GetValue(int value);
public event GetValueEvent GetValue;
public int polo(int value)
{return GetValue(value);
}
我先在內部的程式碼裡面,先設一個GeTime這名稱的delegate
在宣告一個GetValueEvent事件用來HOOK外部事件,然後
在polo方法裡面直接呼叫GetValue這方法
A:
public static int addva(int value)
{return value + value;
}
static void Main(string[] args)
{ Class1 dd = new Class1(); dd.GetValue += new ConsoleApplication2.Class1.GetValueEvent(addva);var se = dd.polo(22);
Console.Write(se);
}
然後再main的方法裡,去hook住Addva這方法,好讓B去呼叫
A的程式碼
沒有留言:
張貼留言