bool变量未设置为true C#
我有一个布尔值,在声明时设置为falsebool变量未设置为true C#,c#,methods,boolean,C#,Methods,Boolean,我有一个布尔值,在声明时设置为false public bool row1 = false; 但是,当我运行一些代码以将布尔值设置为true时,它似乎不是wokring if (currentBox.BackColor == cardColour) { MessageBox.Show("Please Draw a Card."); } else if (currentBox.BackColor != cardColour) { row = true; } 上面的代码是在pic
public bool row1 = false;
但是,当我运行一些代码以将布尔值设置为true时,它似乎不是wokring
if (currentBox.BackColor == cardColour)
{
MessageBox.Show("Please Draw a Card.");
}
else if (currentBox.BackColor != cardColour)
{
row = true;
}
上面的代码是在picturebox鼠标单击事件方法中调用的方法的方法体(调用该方法时使用参数中的行1)。在当前状态下,当它应该设置为true时,它会说它是false
下面是调用该方法的代码
private void rowOne_MouseClick(object sender, MouseEventArgs e)
{
AllowTake(row1, currentCardPictureBox, Color.White, sender, e);
}
void MakeTrue(bool flag) {
flag = true;
}
//Calling code:
bool myFlag = false;
MakeTrue(myFlag);
谢谢您的帮助。您应该通过ref传递
行
参数:行1
是一个单独的局部变量,其值不在方法之外使用
private void rowOne_MouseClick(object sender, MouseEventArgs e)
{
AllowTake(row1, currentCardPictureBox, Color.White, sender, e);
}
void MakeTrue(bool flag) {
flag = true;
}
//Calling code:
bool myFlag = false;
MakeTrue(myFlag);
调用MakeTrue
后,myFlag
的值不会改变。它的值用于初始化MakeTrue
方法中的标志
参数,就是这样。在此之后,对flag
所做的任何操作都不会影响myFlag
的值
现在,如果您这样做:
void MakeTrue(ref bool flag) {
flag = true;
}
//Calling code:
bool myFlag = false;
MakeTrue(ref myFlag);
您将获得所需的(在您的情况下)行为:flag
将只是myFlag
变量的别名,您分配给它的任何内容都将成为myFlag
的值
以下是一些链接: