C#委托与代理

C#委托与代理鸭子叫例子

//事件用到的代理,以般以×××Handler的格式进行命名
private delegate void CryHandler();    // 无参代理

// 玩具小鸭的类
class Duck
{
    // 定义小鸭的唱歌事件
    public event CryHandler DuckCryEvent;

    public Duck()
    {
        // 把小鸭唱歌的事件挂接到Cry方法上
        DuckCryEvent += new CryHandler(Cry); // 注册事件,传入方法
    }

    // 小鸭唱歌事件对应的处理方法
    public void Cry()
    {
        Console.WriteLine("我是一只小鸭,呀呀呀....");
    }

    // 小鸭被摇动
    public void BeShaked() //执行方法,引发cry事件
    {
        DuckCryEvent();                       // 执行事件,传入参数
    }
}

class MyClass
{
    public static void Main3(string[] args)
    {
        // 买一只小鸭
        Duck d = new Duck();
        // 摇一摇小鸭,它就会调触发小鸭的Cry事件,小鸭就会唱歌
        d.BeShaked();
    }
}
本站原创,未经允许不得转载:lingkb » C#委托与代理
赞(0)

相关推荐

评论抢沙发