同时更改多个类似命名的变量值

时间:2015-10-22 22:05:27

标签: c#

第一次在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;

我希望你能理解我想要完成的事情。

1 个答案:

答案 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);