bool变量没有被设置为true

本文关键字:设置 true 变量 bool | 更新日期: 2023-09-27 18:10:42

我有一个布尔值,在声明时设置为false,

public bool row1 = false;

然而,当我运行一些代码,以设置布尔值为真,它似乎不工作,

if (currentBox.BackColor == cardColour)
{
    MessageBox.Show("Please Draw a Card.");
}
else if (currentBox.BackColor != cardColour)
{
    row = true;
}

上面的代码是在一个图片框鼠标点击事件方法中调用的方法的方法体(在调用该方法时使用参数中的row1)。在当前状态下,当它应该设置为真时,它显示为假。

下面是调用该方法的代码。

private void rowOne_MouseClick(object sender, MouseEventArgs e)
{
    AllowTake(row1, currentCardPictureBox, Color.White, sender, e);
}

谢谢你的帮助

bool变量没有被设置为true

你应该通过ref传递row参数:row1是一个单独的局部变量,它的值不会在方法之外使用。

void MakeTrue(bool flag) {
    flag = true;
}
//Calling code:
bool myFlag = false;
MakeTrue(myFlag);

调用MakeTrue后,myFlag的值没有变化。它的值用于初始化MakeTrue方法中的flag参数,仅此而已。之后无论你对flag做什么都不会影响myFlag的值。

现在,如果你这样做:

void MakeTrue(ref bool flag) {
    flag = true;
}
//Calling code:
bool myFlag = false;
MakeTrue(ref myFlag);

您将得到所需的(在您的情况下)行为:flag将只是myFlag变量的别名,无论您分配给它什么将成为myFlag的值。

一些链接阅读:

  • 传递参数(MSDN)
  • c#中传递的参数为什么在c#中使用refout