Joseba Rodríguez Asked: 2020-07-12 00:18:38 +0800 CST 2020-07-12 00:18:38 +0800 CST 2020-07-12 00:18:38 +0800 CST 为什么 null 不能与三元运算符一起使用? 772 测试...以下语句无法编译,因为 . 之间没有隐式转换null。 CS0173 无法确定条件表达式的类型,因为'<NULL>'和之间没有隐式转换'<NULL>' string pp = true ? null : null; c# 1 Answers Voted Best Answer Pikoh 2020-07-12T00:32:07+08:002020-07-12T00:32:07+08:00 三元运算符需要确定条件表达式的类型。这是通过遵循语言规范中出现的以下几点来完成的: 如果你x有 typeX并且你y有 type Y,那么 如果从to存在隐式转换(隐式转换) ,但从XtoY不存在,那么它就是条件表达式的类型。YXY 如果从to存在隐式转换(隐式转换) ,但从YtoX不存在,那么它就是条件表达式的类型。XYX 否则,无法确定表达式类型,并出现编译时错误。 问题是null它没有类型,因此由于表达式的任何部分都无法确定类型,因此会发生错误。 要解决它,您只需为两个表达式中的任何一个分配一个类型,例如: string pp = true ? (string)null : null;
三元运算符需要确定条件表达式的类型。这是通过遵循语言规范中出现的以下几点来完成的:
问题是
null
它没有类型,因此由于表达式的任何部分都无法确定类型,因此会发生错误。要解决它,您只需为两个表达式中的任何一个分配一个类型,例如: