- 一、按照标准的事件委托格式编写
public delegate void MyDelegateHandler(string name);
public static event MyDelegateHandler myDelegate;
public static void OnMyDelegate(string name)
{
if (myDelegate != null)
{
myDelegate(name);
}
}
public static void HellowChinese(string name)
{
Console.WriteLine("hello " + name);
Console.ReadKey();
}
public static void Main(string[] args)
{
myDelegate += HellowChinese;
OnMyDelegate("wang");
}
- 二、不使用事件的委托形式编写
public delegate void MyDelegateHandler(string name);
public static void HellowChinese(string name)
{
Console.WriteLine("hello " + name);
Console.ReadKey();
}
public static void Main(string[] args)
{
MyDelegateHandler myDelegate = new MyDelegateHandler(HellowChinese);
myDelegate("wang");
}
- 三、匿名委托(优点是不用写函数)
public delegate void MyDelegateHandler(string name);
public static event MyDelegateHandler myDelegate;
public static void Main(string[] args)
{
myDelegate += delegate(string name)
{
Console.WriteLine("hello " + name);
Console.ReadKey();
};
myDelegate("wang");
}
- 四、lamada表达式(匿名委托的另外一种写法.)
public delegate void MyDelegateHandler(string name);
public static event MyDelegateHandler myDelegate;
public static void Main(string[] args)
{
myDelegate += ((name) =>
{
Console.WriteLine("hello " + name);
Console.ReadKey();
});
myDelegate("wang");
}