我对C#很新,我的作业有问题。某个按钮的点击事件我有以下内容。对于click事件,我想用名为parameterB的参数调用名为functionA的函数,这是一个double类型的数组。附加参数导致错误。我这样做的正确方法是什么?
private void button1_Click(object sender, EventArgs e, double [] parameterB)
{
functionA(parameterB);
}
在Designer.cs的相应部分
this.button1.Location = new System.Drawing.Point(386, 309);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(174, 27);
this.button1.TabIndex = 25;
this.button1.Text = "Calculate Final Grade";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
答案 0 :(得分:1)
当最终用户点击您的按钮时,您不会致电button1_Click
- 它会被调用。检测按钮点击的系统部分知道如何使用一种方式通知您的程序点击:通过调用带签名的方法
void OnClick(object sender, EventArgs e)
您不能在参数列表中添加或删除参数,也不能更改方法的返回类型:它必须精确匹配此签名。
现在回到parameterB
:您需要它来调用functionA
方法,但它不会传递给事件处理程序。你怎么得到的呢?通常,答案是将它存储在执行事件处理的对象的实例上:声明类型为double[]
的实例变量,在有足够数据设置它时设置它,并将其传递给{{1来自functionA
方法内部。
答案 1 :(得分:0)
当您尝试添加其他参数时,事件处理程序不再与该定义匹配。 EventHandler定义了2个参数。
发送方
键入:System.Object
事件的来源。
ë
键入:System.EventArgs
不包含事件数据的EventArgs。
您需要将 parameterB 设置为表单的属性或field。然后,您将从事件处理程序中获取 parameterB 。