如何避免多次 if null 检查[重复]

2023-12-31

可能的重复:
Deep Null 检查,有更好的方法吗? https://stackoverflow.com/questions/2080647/deep-null-checking-is-there-a-better-way
C# 检查属性的属性是否为 null 的优雅方法 https://stackoverflow.com/questions/3468250/c-elegant-way-to-check-if-a-propertys-property-is-null

我必须在深层对象模型中进行查找,如下所示:

  p.OrganisationalUnit.Parent.Head.CurrentAllocation.Person;

无论如何,如果链中的任何一个为空(组织单位、父级、负责人等),是否可以对此进行评估并返回 null,而无需执行

if (p.org == null && p.org.Parent == null && p.org.Parent.Head . . .     

您正在寻找空安全解引用运算符?.(也称为安全导航),某些语言(例如 Groovy)有,但不幸的是 C# 没有此运算符。

希望有一天能够实施......

也可以看看这个帖子 https://stackoverflow.com/questions/2080647/deep-null-checking-is-there-a-better-way/2081709#2081709作者:埃里克·利珀特。他提出的语法是.?.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免多次 if null 检查[重复] 的相关文章

随机推荐

  • 有什么方法可以将 AWS Cloudfront 设置为指向静态 IP 地址(WP 托管在 GoDaddy 上)?

    因此 我在 Godaddy 上托管了一个 WordPress 网站 但 DNS 位于 Route53 上 我希望只能通过 https 访问它 因此 我使用 ACM 和使用该证书的 Cloudfront 发行版设置了 SSL 证书 但我从 G
  • 使用jaxb读取xml文档

    我正在尝试使用 jaxb 读取 xml 并尝试创建解析器 我对构造 java beans 及其中的注释的方式有一些疑问 我知道我所做的事情是错误的 因为我收到了非法注释错误 我能否获得一些关于如何编写 bean 和注释以允许 jax b 执
  • IPv6 下网络字节顺序毫无意义吗?

    如果我们使用32位整数来存储IPv4地址 那么必须考虑该整数的字节顺序 但是 由于几乎所有平台下都没有内置的128位整数类型 因此IPv6地址必须存储到字节数组中 因此 我认为字节顺序不再是问题 我对么 或者IPv6有对应的函数htonlX
  • UWP ListView 触摸拖动行为

    使用触摸触发 ListView 项目的拖放操作时 WinRT Windows 8 8 1 和 UWP Windows 10 应用之间的行为似乎已发生变化 在 WinRT 中 向左或向右 撕裂 项目会导致其分离 从而启动拖动行为 在 UWP
  • WebAPI中DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver有什么区别

    我有现有的项目 它使用 AutoFac 作为 IoC 在注册代码中我有这些行 var resolver builder Build DependencyResolver SetResolver new AutofacDependencyRe
  • 使用 Hammer.js 和 .on() 绑定事件

    Hammer js http eightmedia github com hammer js 向我的网络应用程序添加了 javascript 触摸和手势支持 我的问题在于将 hammer 与 DOM 元素一起使用 这些元素在文档准备好后调用
  • WPF VirtualizingStackPanel 可提高性能

    我想要一个关于如何实现 virtualizingstackpanel 的简单描述ItemsControl这是数据绑定到ObservableCollection在我的 MVVM 中 我有一个ItemsControl选项卡控件中每个选项卡的实例
  • java 的 makefile

    我不明白我的 makefile 做错了什么 JAVA SRCS wildcard tasks src java JAVA CLASSES subst src build JAVA SRCS java class JFLAGS cp jar
  • Maven 搜索 site.xml 缺少的英语语言环境

    在使用 Maven 构建项目期间 我在更新其父项目的版本后遇到生成 javadoc 的问题 2016 08 18 16 06 44 559 INFO lt lt lt maven javadoc plugin 2 10 3 aggregat
  • 模拟 div 覆盖另一个 div 时的颜色变化

    我有一个固定的 div 它可以滚动某些元素 当div位于某个div上方时 我不希望它具有特定的颜色和特定的图像 当它位于另一个 div 上时 我希望它改变颜色 基本现场演示 http jsfiddle net c2a4jg95 8 我很确定
  • VBA打开工作簿,退出代码

    我尝试使用打开 xlsm 类型的工作簿 Private Function readFiles ByVal lv path As String ByRef lx wrkShDes As Worksheet On Error GoTo Erro
  • Perl 6 有无限的 Int 吗?

    我有一个任务 我想找到距离目标最近的字符串 因此 编辑距离 而不是同时生成它们 我想我应该使用高水位线技术 我猜是低水位线 同时初始化最近的编辑距离Inf这样任何编辑距离都会更近 use Text Levenshtein my string
  • ASP.Net Core Blazor:如何根据标头值加载不同的 _Host.cshtml 文件

    我想加载一个 Host cshtml基于请求中的标头的 ASP NET Core Blazor 项目 服务器端 Blazor 中的文件 例如 客户端连接到example com并被重定向到 Host cshtml特定于租户 A 的文件 另一
  • 在Python中关闭窗口并打开文本编辑器时保持脚本运行[重复]

    这个问题在这里已经有答案了 众所周知 愚人节即将到来 所以我想我应该写一个很好的脚本来恶作剧某人 这是众所周知且令人恐惧的 MEMZ 病毒的无害版本 我目前拥有的脚本 import webbrowser import time def pr
  • AngularJS 幻灯片过渡在 Safari ios 9 上损坏

    我有以下 css 类 用于在路线更改开始时左右滑动我的 ng view 这些在大多数浏览器 手机等上都工作得很好 直到现在 在ios 9下动画不太工作 它不再从左到右滑动 但视图在滑动时从小尺寸增长到全尺寸 效果相当不愉快 欢迎任何帮助 C
  • 如何创建按月份分组的年度条形图

    我在尝试使用 和 创建条形图时遇到了困难DataFrame按年份和月份分组 使用以下代码 我尝试在创建的图像中绘制数据 而不是返回第二个图像 我还尝试将图例移至右侧并将其值更改为相应的月份 我开始感受到通过groupby命令 虽然没有得到我
  • 如何抑制“缺乏具体实施”的警告?

    我该怎么做才能防止编译器抛出以下警告 缺少 setter MyClass field 和 getter 的具体实现 我的班级 field 在下面的代码上 import package mock mock dart class MyClass
  • Django IntegrityError - NOT NULL 约束失败

    我遇到的错误表明我正在尝试提交一个必填字段为空的表单 Error django db utils IntegrityError NOT NULL constraint failed bug report bug project id 我的代
  • C# 枚举 - 如何比较值

    我如何比较这个枚举的值 public enum AccountType Retailer 1 Customer 2 Manager 3 Employee 4 我试图在 MVC4 控制器中比较此枚举的值 如下所示 if userProfile
  • 如何避免多次 if null 检查[重复]

    这个问题在这里已经有答案了 可能的重复 Deep Null 检查 有更好的方法吗 https stackoverflow com questions 2080647 deep null checking is there a better