如何将字符串附加到函数名

本文关键字:函数 字符串 | 更新日期: 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());