c# - 检查两个值之一是否为空而另一个不为空的简洁方法

标签 c#

有时我需要验证两个值中,一个 null 而另一个不是。这有效:

(a != null && b == null) || (a == null && b != null)

但是当变量名较长时,它会变得困惑,就像对象上的嵌套属性一样。创建辅助函数是一个不错的选择,但是是否有更简洁的内联语法?

最佳答案

试试这个:

(a == null) != (b == null)

请注意,如果 operator == 被您的类覆盖,您可能会遇到问题。 下面不使用运算符==

object.ReferenceEquals(a, null) == object.ReferenceEquals(b, null)

关于c# - 检查两个值之一是否为空而另一个不为空的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39202859/

相关文章:

c# - 具有链式字符串方法的表达式树

c# - 来自 LLVM 绑定(bind)的不平衡堆栈警告

c# - 关于 NullReferenceException 的困惑

c# - 转换 pdf 以供打印

c# - 按顺序拆分 Parallel.Foreach 循环上的负载

c# - 如何根据登录成功在新窗口/选项卡或同一窗口/选项卡中打开页面?

c# - Powerpoint 中形状的部分下划线检查不起作用?

c# - 如何使用其键从 IEnumerable 集合中获取值?

c# - 定义类型为 void 的类属性(不是方法)

c# - VTK 渲染成 C#