我正在尝试创建一个函数,允许将布尔值作为参数并更改函数中该布尔值的值。 下面是代码:
似乎并没有改变参数中传入的原始
bool
变量的值。
void myToggleFunction(bool pBool)
{
if (!pBool)
{
pBool = true;
}
else
{
pBool = false;
}
}
我有一个
bool
:
public bool myBool = false;
我将该函数称为:
myToggleFunction(myBool);
当我创建断点时,我看到它正在更改
pBool
的值,但没有更改我传入参数的 bool
的值。
答案(感谢大卫)是使用“参考”:
void myToggleFunction(ref bool pBool)
{
if (!pBool)
{
pBool = true;
}
else
{
pBool = false;
}
}
并且在调用函数时需要传递作为引用:
myToggleFuntion(参考 myBool);
很高兴有人解释,因为这里的许多成员对编码感兴趣,但可能不知道什么是参考。我了解到这一点是因为如果大卫的评论