using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
//貓叫,老鼠逃跑,主人驚醒
class Program
{
static void Main(string[] args)
{
Cat c = new Cat("加菲貓");
Mouse m = new Mouse("米老鼠");
Person p = new Person("湯姆");
c.MyEvent += new NumberChangedEventHandler(c.OnDoSomeThing);
c.MyEvent += new NumberChangedEventHandler(m.OnDoSomeThing);
c.MyEvent += new NumberChangedEventHandler(p.OnDoSomeThing);
c.Cry();//貓叫
Console.Read();
}
}
public delegate void NumberChangedEventHandler();
public class Cat
{
public event NumberChangedEventHandler MyEvent;
private string name;
public Cat(string name)
{
this.name = name;
}
public void Cry()
{
if (MyEvent != null)
{
Delegate[] delegates = MyEvent.GetInvocationList();
foreach (Delegate del in delegates)
{
object o = del.DynamicInvoke();
}
}
}
public void OnDoSomeThing()
{
Console.WriteLine("貓" + name + "叫");
}
}
public class Mouse
{
private string name;
public Mouse(string name)
{
this.name = name;
}
public void OnDoSomeThing()
{
Console.WriteLine("老鼠" + name + "跑");
}
}
public class Person
{
private string name;
public Person(string name)
{
this.name = name;
}
public void OnDoSomeThing()
{
Console.WriteLine("主人" + name + "驚醒");
}
}
}
錯誤請指正
轉載于:https://www.cnblogs.com/aaa1028/archive/2011/05/10/2042141.html