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类型。

    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退