using System;
namespace TheDelegate
{
public class People
{
public static void Say()
{
Console.WriteLine("好的,我说一下,是我代干的哈。");
}
public static int Sum(int a, int b)
{
int c = a + b;
Console.WriteLine("结果是:{0}", c);
return c;
}
public static int By(int a, int b)
{
int c = a * b;
Console.WriteLine("结果是:{0}", c);
return c;
}
public delegate void SmileEventHandler();
public event SmileEventHandler OnSmile;
public void Smile()
{
if (OnSmile != null)
{
Console.WriteLine("I'm smiling...");
OnSmile();
}
}
public delegate void LaougthEventHandler(object sender, EventArgs e);
public event LaougthEventHandler OnLaougth;
public void Laougth()
{
if (OnLaougth != null)
{
Console.WriteLine("I'm Laougthing, hahahaha...");
OnLaougth(this, new EventArgs());
}
}
}
class Program
{
public delegate void SayEventHandler();
public delegate int CalEventHandler(int a, int b);
static void Main(string[] args)
{
SayEventHandler say = new SayEventHandler(People.Say);
say();
CalEventHandler cal = new CalEventHandler(People.Sum);
cal += People.By;
int res = cal(22, 33);
Console.WriteLine(res);
People ppl = new People();
ppl.OnSmile += new People.SmileEventHandler(ppl_OnSmile);
ppl.Smile();
ppl.Smile();
ppl.OnLaougth += new People.LaougthEventHandler(ppl_OnLaougth);
ppl.Laougth();
}
private static void ppl_OnSmile()
{
Console.WriteLine("严肃!");
}
private static void ppl_OnLaougth(object sender, EventArgs e)
{
Console.WriteLine("安静,安静!\t{0}\t{1}", sender, e);
}
}
}