设想一个问题:
100个TextBox,其Name分别是textBox1-textBox100,还有100个字符变量,分别时textBox1_str~textBox100_str,怎么快速把这100个变量付给对应的textBox?
首先,您可以使用循环来遍历所有的TextBox控件和字符变量。然后,使用反射来获取并设置相应的成员值。
下面是一个示例代码,展示了如何使用反射快速将100个字符变量赋值给对应的TextBox控件:
using System.Reflection;
// 循环遍历所有的TextBox控件和字符变量
for (int i = 1; i <= 100; i++)
{
// 获取TextBox控件的名称
string textBoxName = "textBox" + i;
// 获取字符变量的名称
string variableName = "textBox" + i + "_str";
// 使用反射获取TextBox控件对象
TextBox textBox = (TextBox)this.Controls.Find(textBoxName, true)[0];
// 使用反射获取字符变量的值
string variableValue = (string)this.GetType().GetField(variableName).GetValue(this);
// 将字符变量赋值给TextBox控件
textBox.Text = variableValue;
}
在上述示例中,我们使用循环来依次处理每个TextBox控件和字符变量。通过组合名称,我们可以使用this.Controls.Find(textBoxName, true)[0]
来找到对应的TextBox控件。然后,使用反射通过this.GetType().GetField(variableName).GetValue(this)
获取字符变量的值。最后,将字符变量的值赋给TextBox控件的Text属性。
请注意,上述示例假设这些TextBox控件和字符变量是定义在同一个类中的。如果它们位于不同的类中,您需要相应地修改访问修饰符和对象的获取方式。