委托三步
1. 声明 declaration : delegate <返回值类型> *EventHandler(<参数列表>); EvnetHandler为委托名后缀规范
2. 实例化 instantiation *EventHandler a; 或者 *EventHandler a = new *EventHandler(<方法>);
3. 调用 call a(<参数>);
样例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
delegate void MyDelegateEventHandler(string s); // declare a delegate, EventHandler是后缀规范
namespace ConsoleACsharp1
{
class Class1
{
void PrintFirst(string str)
{
Console.WriteLine("{0} ,My First Delegate", str);
}
void PrintSecond(string str)
{
Console.WriteLine("{0}, My Second Delegate", str);
}
static void Main(string[] args)
{
Class1 ob = new Class1();
// instantiation a object // 相当于创建了一个指向函数的指针
//MyDelegateEventHandler c1 = new MyDelegateEventHandler(ob.PrintFirst);
MyDelegateEventHandler c1;
c1 = ob.PrintFirst;
c1 += ob.PrintSecond; // 添加一个要委托的事件
// call
c1("call!");
}
}
}
注意: 委托和 要委托的方法的 参数列表形式和返回值类型要相同