第一次在stackOverflow上,所以这可能是一个非常愚蠢的问题,但我想知道我是否可以同时更改多个变量值,而不必写出每一个。
此处是我的代码:
public string Label1Text()
{
int index;
for (index = 0; index < 32; index++)
{
if (seatChosen[index])
{
_bookedSeats += "A" + (index + 1) + " ";
Properties.Settings.Default.A1 = true;
}
}
string text = _bookedSeats + ".";
//debug
label1.Text = text;
return text;
}
该行
Properties.Settings.Default.A1 = true;
是我想要改变的东西(理论代码)
Properties.Settings.Default.A[index] = true;
或
Properties.Settings.Default.A + index = true;
我希望你能理解我想要完成的事情。
答案 0 :(得分:0)
使用反射:(我假设Properties.Settings.Default是一个静态类,A1,A2等是公共静态属性。)
Type type = typeof(Properties.Settings.Default);
var prop = type.GetProperty(index.ToString("\\A0"));
if (prop != null)
prop.SetValue(null, true);
如果Default是一个实例,则需要将其传递给SetValue而不是null。此外,C#v6允许更简洁的语法。
Type type = Properties.Settings.Default.GetType();
type.GetProperty($"A{index}")?.SetValue(Properties.Settings.Default, true);