[英]Why doesn't below code work with (null,null)?
我知道Click事件接受一个具有两个参数类型的委托,即Object和EventArgs,并且下面的代码可与任何给定参数一起使用,但是为什么下面的代码不能与(null,null)一起使用? 它只是打印出一个字符串。 我给出null Object
和null EventArgs
都没关系(它与(foo,bar)或(m,n)一起使用)
注意 :CS1026,CS1002,CS1513错误以逗号引发。
using System.Windows.Forms;
namespace Hello_World
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.messageButton.Click += (null, null) => MessageBox.Show("Hello");
}
}
}
(null, null) =>
是lambda表达式。 现在,您将保留关键字null
用作方法参数的名称。 那是不允许的。
您应该给参数实名,或使用_
丢弃它们:
this.messageButton.Click += (_, __) => MessageBox.Show("Hello");
因为这等效于方法声明。
在做
this.messageButton.Click += (foo, bar) => MessageBox.Show("Hello");
相当于这个
this.messageButton.Click += ClickHandler;
public static void ClickHandler(object null, EventArgs null)
{
}
而且您不能使用null
作为参数名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.