allenwithallen 2016-04-28 03:42 采纳率: 0%
浏览 2009

C#如何事件注册/委托用法问题

在用事件注册和委托时,遇到了困惑。在button注册事件时,C#默认是这样的:
this.button1.Click += new System.EventHandler(this.button1_Click);
实际上这样也可以执行:
this.button1.Click += this.button1_Click;
那么这两种方法到底有什么区别?


为什么要加这个委托?在自定义委托和事件时,按Tab自动补齐时,有时出现下面两种格式的一种,怎么回事?
Control.DetailEvent += Control_DetailEvent;
Control.DetailEvent +=new Control_DetailEventHandler(Control_DetailEvent);

  • 写回答

2条回答

  • Lee_Y_K 2016-04-28 05:22
    关注

    本质上没有区别,
    Control_DetailEvent 是执行方法(Method),而Control_DetailEventHandler是个委托类型(Delegate)
    简单来说,委托是对一类同参数同返回类型方法的描述
    使用 Control.DetailEvent += Control_DetailEvent,编译器会自动实例化一个Control_DetailEvent对应的Delegate类型。

    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致