您的位置:首页 > 编程语言 > C#

C# 最好的事件例子 动物练习篇

2010-06-04 11:03 176 查看
using System;
using System.Collections.Generic;
using System.Text;

namespace 动物练习
{
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat("Tom");
Mouse mouse1 = new Mouse("Jerry");
Mouse mouse2 = new Mouse("Jack");
cat.CatShout += new Cat.CatShoutEventHandler(mouse1.Run);
cat.CatShout += new Cat.CatShoutEventHandler(mouse2.Run);

cat.Shout();

Console.Read();
}
}

//无参数委托事件
//class Cat
//{
//    private string name;
//    public Cat(string name)
//    {
//        this.name = name;
//    }

//    public delegate void CatShoutEventHandler();
//    public event CatShoutEventHandler CatShout;

//    public void Shout()
//    {
//        Console.WriteLine("喵,我是{0}.", name);

//        if (CatShout != null)
//        {
//            CatShout();
//        }
//    }
//}

//class Mouse
//{
//    private string name;
//    public Mouse(string name)
//    {
//        this.name = name;
//    }

//    public void Run()
//    {
//        Console.WriteLine("老猫来了,{0}快跑!", name);
//    }
//}

//有参数委托事件
class Cat
{
private string name;
public Cat(string name)
{
this.name = name;
}

public delegate void CatShoutEventHandler(object sender, CatShoutEventArgs args);
public event CatShoutEventHandler CatShout;

public void Shout()
{
Console.WriteLine("喵,我是{0}.", name);

if (CatShout != null)
{
CatShoutEventArgs e = new CatShoutEventArgs();
e.Name = this.name;
CatShout(this, e);
}
}
}

public class CatShoutEventArgs : EventArgs
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}

class Mouse
{
private string name;
public Mouse(string name)
{
this.name = name;
}

public void Run(object sender, CatShoutEventArgs args)
{
Console.WriteLine("老猫{0}来了,{1}快跑!", args.Name, name);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: