为什么这不起作用?
bool? value = (1==2 ? true : null);
这很好用:
bool? value = null;
要么
bool? value = true;
当您使用三元运算符时,冒号的两侧必须为同一类型:
var value = (1 == 2 ? true : (bool?)null);
这仅适用于值类型,因为不能将值类型隐式转换为null(因此需要可为null的布尔值,可为null的int等)。
int groupId = (userId == 7) ? 5 : null; // invalid
int groupId = (userId == 7) ? 5 : (int)null; // valid
可以null
在引用类型的另一侧单独使用,可以为null:
string name = (userId == 7) ? "Bob" : null; // valid
MyClass myClass = (userId == 7) ? new MyClass() : null; // valid
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句