0条评论
还没有人评论过~
public Form2() { InitializeComponent(); this.label1.Click += new System.EventHandler(this.label1_Click_1); } void ev(object sender, EventArgs e) { MessageBox.Show(sender.ToString()); } private void label1_Click_1(object sender, EventArgs e) { label1.BeginInvoke(new EventHandler(ev), new object[] { "I LOVE YOU" }); } 这个为什么 我的委托时两个参数 却可以只写一个参数的啊?
不一样的概念。委托你理解为把事件当参数就行了,所以就是这样
this.label1.Click += new System.EventHandler(this.label1_Click_1);
但是怎么调用是另外一回事
你是说:
new object[] { "I LOVE YOU" }
这里只有一个参数吧?
确实,委托
new EventHandler(ev)
的ev函数是俩参数的,这里怎么是一个元素的数组呢?
1、这个代码是能编译通过的,这个没问题
2、能否运行,没做过实验,理论上是不能运行的
3、假如运行通过了,那估计ev函数的参数是引用类型,是可以为空的,于是使用了默认的null。
4、如果3的猜测是正确的,你可以在ev的函数里检查参数e是否为null
参数可以是null