同时更改多个名称相似的变量值

本文关键字:相似 变量值 | 更新日期: 2023-09-27 18:18:57

第一次在stackOverflow上,所以这可能是一个非常nooby的问题,但我想知道我是否可以同时改变多个变量值,而不必写出每一个。

下面是我的代码:

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;

我希望你能理解我正在努力完成的任务。

同时更改多个名称相似的变量值

使用反射:(我假设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);