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);
}
谢谢你的帮助
你应该通过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#中使用
ref
和out