2009年12月2日 星期三

C# - 委派(delegate)與事件(event)

C++有函數指標,可以傳遞方法,C#則有委派可以用。

下面有範例,方法定義在類別ExecuteClass中,要呼叫方法的類別是CallClass。
public class ExecuteClass{
  public void PrintFuction(string str){
    Console.Write(str); //輸出字串
  }
}

public class CallClass{
  public delegate void PrintDelegate(string message); //宣告委派型別
  public event PrintDelegate PrintEvent; //宣告事件
  public void CallFuction(string message){
    PrintEvent(message); //呼叫委派方法
  }
}

public class MainClass{
  public static void main(){
    ExecuteClass execute = new ExecuteClass();
    CallClass call = new CallClass();
    call.PrintEvent += execute.PrintFuction; //對事件註冊方法
    call.CallFuction("呼叫成功!");
  }
}

沒有留言: