有没有办法在没有return语句的函数中返回默认值?

Yat*_*rix 0 c# .net-4.0

例如:

private bool isThisADumbQuestion(bool trustMeThisWilLBeTrue)
{
    if (trustMeThisWilLBeTrue)
        return true;
}
Run Code Online (Sandbox Code Playgroud)

这总是给出错误,即并非所有路径都返回值.在这种情况下,函数声明中是否可以返回默认值?从逻辑上讲:

private (bool = false) isThisADumbQuestion() {}
Run Code Online (Sandbox Code Playgroud)

我猜这不可能,但我还在学习很多C#语法,所以我想我会问以防万一.看起来它可能是一个有用的功能,可以在函数体内保存大量的检查.

编辑: 上面的代码是一个逻辑示例,不能作为一个实际的方法.我编辑它以便它实际上会给出承诺的错误.伙计们,对不起,对不起.

Jar*_*Par 7

不,这是不可能的.非void返回函数上的所有代码路径必须以显式returnthrow语句终止.

注意:正如xanatos所指出的,对于C#编译器可以确定永不终止的方法,上述规则有一个例外.例如

int Test() {
  while (true) { }
}
Run Code Online (Sandbox Code Playgroud)