如何将字符串附加到函数名
本文关键字:函数 字符串 | 更新日期: 2023-09-27 18:14:34
我有一个for循环,每次调用点击事件。我想在函数名后面加上一个字符串。比如button_click那么我希望它是Button_click1 Button_click2等等
我想对值1、2等执行一些操作。请建议是否有其他方式访问此信息。
线程可以是我将选择的最后一个选项。
其他答案对我来说更正确,但如果你真的需要基于字符串的调用,我认为你需要使用Reflection类。
String suffix = "_Click1";
Type myType = typeof(MyClass);
myType.InvokeMember("Button"+ suffix,
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, yourButtonObject, null);
你可以尝试创建一个Button数组,然后你可以为数组中的任何按钮的点击创建一个事件。
>
> > >for(int i = 0; i < buttons.Length; i++)
{
//it's important to have this; closing over the loop variable would be bad
int index = i;
buttons[i].Click += (sender, args) => SomeMethod(buttons[index], index);
}
这可能会节省很多行代码,也更容易。
我认为你应该把所有的按钮放在一个列表中,就像这样:
List<Button> ButtonList = new List<Button>(){Button1, Button2};
然后为每个按钮调用Button_Click像这样:
Foreach(Button button in ButtonList)
button.Button_Click(this, new EventArgs());