如何判断是否已设置out参数?

Omt*_*ara 7 c# out

有没有办法知道是否已经设置了out参数.这是我正在寻找的伪代码:

public virtual string blabla(long num, out bool bval)
    {
        if (!bval.HasValue)
            {
            //Do some default logic
            bval = defaultValue;
            }

        return blabla2(num, bval);
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 12

您不能 - 在您的方法中明确分配变量之前,您无法读取变量.您应该将其视为局部变量,声明但在方法的开头没有赋值 - 但必须在返回之前为其赋值.(如果抛出异常,可以不为它分配值.)

如果你想要一个携带信息作为方法输入的参数以及传播信息,你应该使用ref而不是out.

有关更多信息,请参阅有关参数传递的文章.