【发布时间】:2017-04-06 04:35:36
【问题描述】:
这可能是一个菜鸟问题,但我被困住了。
我这里有我表单中的代码。这是我分配给按钮的事件。
这些按钮应该在SomeClass 中切换booleans 的状态。
这些布尔值都是public static bool boolA 等。
这是我的表单代码。
public void switchButton(object sender, EventArgs e)
{
Button[] buttons = { btnA, btnB };
bool[] bools = { SomeClass.boolA, SomeClass.boolB };
Button button = (Button)sender;
int index = Array.IndexOf(buttons, button);
if (bools[index])
{
bools[index] = false;
button.Text = "Start";
}
else
{
bools[index] = true;
button.Text = "Stop";
}
}
发生的情况是,当我再次单击按钮时,按钮的文本设置为“停止”,但永远不会设置为“开始”。
非常感谢您的帮助。
【问题讨论】:
-
if (boools[index])只是在这段代码中有一个 o 吗? -
bools每次单击按钮时都会重新定义 -
@Liam 没关系,因为 SomeClass.boolA, boolB 是静态字段
-
如果您不使用数组,这一切都会容易得多。为什么不直接设置
boolA和boolB? -
@MadOX:这很重要,因为数组包含值的副本。