布尔?不可空

时间:2017-03-09 16:29:38

标签: c# intellisense

我班上有以下字段:

public bool? EitherObject1OrObject2Exists => ((Object1 != null || Object2 != null) && !(Object1 != null && Object2 != null)) ? true : null;

但在Visual Studio中,我收到一个IntelliSense错误,即" bool"之间无法进行转换。和" NULL"即使该字段可以为空。 我做错了什么? 有没有更简洁的方法来检查两个对象中的任何一个是否为空,但其中一个必须为空?

1 个答案:

答案 0 :(得分:5)

尝试

? (bool?) true : null;

问题是默认bool(true)不可为空,因此就编译器而言,case语句返回不同的类型

您可以删除Servy指出的冗余

Object1 != null ^ Object2 != null