c# - 有没有办法在没有 return 语句的情况下在函数中返回默认值?

标签 c# .net-4.0

例如:

private bool isThisADumbQuestion(bool trustMeThisWilLBeTrue)
{
    if (trustMeThisWilLBeTrue)
        return true;
}

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

private (bool = false) isThisADumbQuestion() {}

我猜这是不可能的,但我仍在学习大量 C# 语法,所以我想我会问以防万一。似乎这是一个有用的功能,可以在函数体内节省大量检查。

编辑: 上面的代码是一个逻辑示例,不能作为实际方法。我对其进行了编辑,以便它实际上会给出 promise 的错误。抱歉给您带来麻烦,伙计们。

最佳答案

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

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

int Test() {
  while (true) { }
}

关于c# - 有没有办法在没有 return 语句的情况下在函数中返回默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758492/

相关文章:

.net-4.0 - .NET Framework 4.0 Beta2 中的 IObservable<T>

c# - 将字符串值与枚举的字符串值进行比较

c# - 从非 guid 格式的字符串生成 GUID

c# - 私有(private)成员在 API 方法调用中突然为 null

c# - Visual Studio 不会在崩溃时进行调试

c# - 在运行时编译 C# 代码 [更新 : or Alternatives]

c# - 在没有 DI 的情况下获取 Serilog 记录器的实例

c# - Ideatryout:键入提供程序工厂

c# - 如何将可空类型隐式转换为不可空类型

c# - DispatcherTimer 不触发