嗨,我几乎是C#的新手,我通常使用c ++编程,所以请耐心等待。我正在编写一个应用程序,我有10个按钮,其中5个实际上做同样的事情。目前我有5个事件处理程序做同样的事情。如何使用if语句将其更改为单个偶数处理程序。另外我的问题是,即使每个按钮的方法都相同,我也会有一些小的差异,如下所述:
按钮1复制按钮5 按钮2与按钮6相配 按钮3与按钮7相比等等
我如何处理每种情况下的这种微小差异?
非常感谢你
答案 0 :(得分:2)
button.SomeEvent += SomeHandler
void SomeHandler(object sender, EventArgs e)
{
Button b = (Button)sender; //get the specific button that was pressed
...
}
使用+ =运算符向事件添加方法,只需添加相同的方法。
答案 1 :(得分:0)
您可以将它们全部设置为相同的处理程序,获取调用它的按钮,检查if语句中的id并执行不同的操作 - 或者 - 您可以使用看起来像这样的更常见的重构: / p>
void Button1Action(object sender, EventArgs e)
{
// do stuff for button 1 here
SharedCode();
}
void Button2Action(object sender, EventArgs e)
{
// do stuff for button 2 here
SharedCode();
}
void Button3Action(object sender, EventArgs e)
{
// do stuff for button 3 here
SharedCode();
}
void Button4Action(object sender, EventArgs e)
{
// do stuff for button 4 here
SharedCode();
}
void SharedCode()
{
// do stuff for all buttons
}