相关疑难解决方法(0)

可空类型和三元运算符:为什么是`?10:null`禁止?

我刚刚遇到一个奇怪的错误:

private bool GetBoolValue()
{
    //Do some logic and return true or false
}
Run Code Online (Sandbox Code Playgroud)

然后,在另一种方法中,这样的事情:

int? x = GetBoolValue() ? 10 : null;
Run Code Online (Sandbox Code Playgroud)

很简单,如果方法返回true,则为Nullable intx 赋值10 .否则,将null赋给nullable int.但是,编译器抱怨:

错误1无法确定条件表达式的类型,因为int和之间没有隐式转换<null>.

我疯了吗?

.net c# nullable conditional-operator

242
推荐指数
6
解决办法
7万
查看次数

为什么我不能在三元if语句中将可空int设置为null?

下面的C#代码:

int? i;
i = (true ? null : 0);
Run Code Online (Sandbox Code Playgroud)

给我错误:

无法确定条件表达式的类型,因为'<null>'和'int'之间没有隐式转换

这不应该有效吗?我在这里失踪了什么?

c# asp.net

43
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

conditional-operator ×1

nullable ×1