C# 如何传递布尔变量作为参数 - 实际变量不仅仅是值

问题描述 投票:0回答:1

我正在尝试创建一个函数,允许将布尔值作为参数并更改函数中该布尔值的值。 下面是代码:

似乎并没有改变参数中传入的原始

bool
变量的值。

void myToggleFunction(bool pBool)

    {
        if (!pBool)
        {
            pBool = true;
        }
        else
        {
            pBool = false;
        }
    }

我有一个

bool
:

public bool myBool = false;

我将该函数称为:

myToggleFunction(myBool);

当我创建断点时,我看到它正在更改

pBool
的值,但没有更改我传入参数的
bool
的值。

parameters boolean
1个回答
0
投票

答案(感谢大卫)是使用“参考”:

void myToggleFunction(ref bool pBool)

{
    if (!pBool)
    {
        pBool = true;
    }
    else
    {
        pBool = false;
    }
}

并且在调用函数时需要传递作为引用:

myToggleFuntion(参考 myBool);

很高兴有人解释,因为这里的许多成员对编码感兴趣,但可能不知道什么是参考。我了解到这一点是因为如果大卫的评论

© www.soinside.com 2019 - 2024. All rights reserved.