ws690275538 2016-07-11 04:04 采纳率: 0%
浏览 989

大家看我对C# 事件的理解对不对,请指点

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 自定义事件
{

class EventDispatcher
{
    public delegate void EventHander(Event ev);
    public event EventHander eventHander;
    public void Dispatch(Event ev)
    {
        if (eventHander != null) eventHander(ev);
    }
}

class Event:EventArgs
{
    public string message;
    public Event(string message)
    {
        this.message = message;
    }
}

class Sprite:EventDispatcher
{
    public void addEventListener(EventHander hander)
    {
        eventHander += new EventHander(hander);
    }
}
class Program
{
    static void Main(string[] args)
    {
        Sprite sprite =new Sprite();
        sprite.addEventListener(Receiver);
        sprite.addEventListener(Hander);
        sprite.eventHander += sprite_eventHander;
        Console.ReadKey();
        sprite.Dispatch(new Event("我发送了一个消息"));
        Console.ReadLine();
        Console.ReadKey();
    }

    static void sprite_eventHander(Event ev)
    {
        Console.WriteLine("sprite_eventHander收到消息" + ev.message);
    }

    private static void Hander(Event ev)
    {
        Console.WriteLine("Hander收到消息" + ev.message);
    }

    private static void Receiver(Event ev)
    {
        Console.WriteLine("Receiver收到消息:" + ev.message);
    }
}

}

  • 写回答

1条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2016-07-11 04:52
    关注

    sprite.eventHander += sprite_eventHander;
    这既是动态绑定事件,就和你双击按钮道理一样

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序