为何添加事件都要用 new Query_PrevMonth_Menu.Click += new EventHandler(Query_PrevMonth); // 典型的Query_ThisMonth_Menu.Click += Query_ThisMonth; // 这个工作也正常啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单。因为每种Delegate都是一个类型,你不new一个Delegate类型的具体对象实例,怎么用类型啊?! 至于说 Query_ThisMonth_Menu.Click += Query_ThisMonth; 这是c#的“语法糖”。.net中并没有这种写法,而c#编译器会把它生成为第一种代码写法。 把事件当做一个类来理解,所以要new出一个新的实例来。万物皆为类。 sp1234回答的很清楚了第二种写法会被net自动转化成第一种net为了方便做出的一些处理机制,比如属性{get;set;}什么的 Query_PrevMonth_Menu.Click += delegate {……};Query_PrevMonth_Menu.Click += (s, e) => {……};也可以。 EventHandler 是一个类,是一种类型, Query_PrevMonth 本来就是这种类型的对象,还要 new 一个新的!蛋疼!还是第二种自然些。 C# 用new关键字声明实例,new过之后为实例分配运行空间,否则实例就不存在纯属个人理解 C#中计算正弦值,余弦值不准确? 如何调整任务栏程序按钮的顺序 如何通过判断光标的位置来显示不同说明信息 comboBox选项改变如何获取之前的选项? 绑定数据库的listbox是否不能删除里面的项 请教如何进行DLL转换 c#如何实现一个线程暂停,等待用户输入文本后继续运行? 请问使用WeifenLuo.WinFormsUI.Docking布局控件的问题 C#调用plsql时 自定义类型的参数如何传递? 谁能介绍些好的关于C#的网站,我想学c# 关于c#提取“混合字符串”首字的问题。 !!!求助:怎么样把我已有的C#做的网络爬虫嵌入我自己做的网页中,就是类似一个类似搜索引擎
Query_ThisMonth_Menu.Click += Query_ThisMonth;
这是c#的“语法糖”。.net中并没有这种写法,而c#编译器会把它生成为第一种代码写法。
回答的很清楚了第二种写法会被net自动转化成第一种net为了方便做出的一些处理机制,比如
属性{get;set;}什么的
Query_PrevMonth_Menu.Click += (s, e) => {……};
也可以。