gpt4 book ai didi

c# - 为什么这个内联if错了?

转载 作者:太空狗 更新时间:2023-10-29 22:06:33 24 4
gpt4 key购买 nike

如果有如下语句:

return this.revision.HasValue ? this.revision : throw new InvalidOperationException();

我认为它会编译,因为 throw 打破了正常的流程,不返回值应该不是问题,但它没有构建。

有没有办法纠正这个声明或者为什么不允许这样做?

谢谢。

编辑: this.revision 是 int?并且该方法返回 int。

编辑 2: 如果我有这种方法

public int Test()
{
throw new Exception();
}

编译器不会提示没有返回值,我期望从内联中得到同样的东西 if ...至少我们知道这可以完成,因为它已经在方法中完成了。

最佳答案

将评论转换为答案:

来自 MSDN:

Either the type of first_expression and second_expression must be the same, or an implicit conversion must exist from one type to the other.

?: Operator

由于 int? 无法转换为异常,并且 throw 不是表达式,因此您的代码中存在错误。

关于c# - 为什么这个内联if错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20142813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com