我该如何做类似这样的事情?
int v1 = 4;
int v2 = 3;
int v3 = 2;
int v4 = 1;
int [] vars = new int [] {ref v1, ref v2, ref v3, ref v4};
for (var i = 0; i < 4; i++) {
ChangeVar (vars [i], i);
}
void ChangeVar (ref int thatVar, int newValue) {
thatVar = newValue;
}
编辑:
我想这样做是因为其他类直接访问这些变量。例如,v1可能是某物体的宽度,v2可能是某物体的高度。我的一些类使用宽度变量来限制其从用户获取的输入长度。有些类使用高度变量来执行其他操作。但是我希望能够使用循环来编辑这些变量,因为现在编辑过程是这样的:
int indexOfVarToChange = GetIndex ();
switch (indexOfVarToChange) {
case 0:
int newValue = GetNewValue ();
width = newValue;
break;
case 1:
int newValue = GetNewValue ();
height = newValue;
break;
}
我必须手动重新分配变量,因为我不能在循环中使用对这些变量的引用数组。我有超过30个唯一的变量需要这样做,这真是太麻烦了。 我想备选方案是将所有这些变量移动到字典中,并拥有所有键的数组,并将每个键传递给编辑函数。
int*
... - user541686