我刚刚遇到一个奇怪的错误:
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>.
我疯了吗?
下面的C#代码:
int? i;
i = (true ? null : 0);
Run Code Online (Sandbox Code Playgroud)
给我错误:
无法确定条件表达式的类型,因为'<null>'和'int'之间没有隐式转换
这不应该有效吗?我在这里失踪了什么?