gpt4 book ai didi

c# - 单击事件处理程序 : Method Name Expected and other Errors

转载 作者:行者123 更新时间:2023-11-30 20:55:57 26 4
gpt4 key购买 nike

我正在使用框架版本 2.0(不能使用 4.0)并且以下将事件处理程序分配给动态创建的按钮的方法不起作用:

deleteButton.Click += (object sender, EventArgs e) => DeleteAnswer(sender, e, toDelete);

错误:无法使用“lambda 表达式”,它不是 ISO - 2 C# 的一部分

所以经过一番搜索,我尝试了这种方式:

deleteButton.Click += new System.EventHandler(DeleteAnswer(sender, e, toDelete));

错误:需要方法名称

然后这样:

deleteButton.Click += DeleteAnswer(sender, e, toDelete);

错误:无法将类型“void”隐式转换为“System.EventHandler”


这是我的代码的一小部分:

public partial class Question : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
//Some Codes Here
if(//Some Condition)
{
Button deleteButton = new Button();
deleteButton.Click = //Event Handler Here
}
}

protected void DeleteAnswer(object sender, EventArgs e, String answer)
{
}

}

分配事件处理程序并传递参数的正确方法是什么?

更新

enter image description here

最佳答案

如果您不需要senderEventArgs 参数,您可以创建一个调用您的方法的delegate

deleteButton.Click += delegate { DeleteAnswer(toDelete); };

protected void DeleteAnswer(string answer)
{
}

否则添加签名

deleteButton.Click += delegate(object s, EventArgs e) { DeleteAnswer(s, e, toDelete); };

protected void DeleteAnswer(object sender, EventArgs e, string answer)
{
}

关于c# - 单击事件处理程序 : Method Name Expected and other Errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com