2 回答
TA贡献2021条经验 获得超8个赞
您应该使用数组而不是四个不同的变量:
bool[] QButton_True = new bool[4];
for (int i = 0 ; i < 4 ; i++) {
QButton_True[i] = true;
}
您不要将它们称为Q1Button_True, Q2Button_True... ,而是将它们称为QButton_True[0], QButton_True[1]...
TA贡献1783条经验 获得超4个赞
您可以为此使用反射,但对于这种情况,它可能有点过分了。
如果您只是将所有变量设置为 true,您可能只想将它们设置在源上。
bool Q1Button1_True = true;
bool Q2Button1_True = true;
bool Q3Button1_True = true;
bool Q4Button1_True = true;
另外,如果这是一个会增长的东西,让我们对 Q 说,n那么你可能想要一个数组,而不是Q1Button1_True你会拥有Button1_True[1].
我假设您将在应用程序的多个部分中执行此操作,因此拥有一些“动态”设置器可能是明智的选择。在这种情况下,您可以使用反射:
bool Q1Button1_True, Q2Button1_True, Q3Button1_True, Q4Button1_True;
List<string> radioBtns = new List<string>(new string[] { "Q1Button1_True", "Q2Button1_True", "Q3Button1_True", "Q4Button1_True" });
foreach (string Btn in radioBtns)
{
bool buttonVar = this.GetType().getProperty(Btn).getValue(this, null);
buttonVar = true;
}
另一种方法是使用类似这样的东西:
bool Q1Button1_True, Q2Button1_True, Q3Button1_True, Q4Button1_True;
List<string> radioBtns = new List<string>(new string[] { "Q1Button1_True", "Q2Button1_True", "Q3Button1_True", "Q4Button1_True" });
foreach (string Btn in radioBtns)
{
PropertyInfo buttonVar = this.GetType().GetProperty(Btn);
buttonVar.SetValue(this, true, null);
}
- 2 回答
- 0 关注
- 290 浏览
添加回答
举报