C# if-null-then-null 表达式

2024-02-02

只是为了好奇/方便:C# 提供了我所知道的两个很酷的条件表达式功能:

string trimmed = (input == null) ? null : input.Trim();

and

string trimmed = (input ?? "").Trim();

对于我经常遇到的情况,我想念另一个这样的表达方式:

如果输入引用为空,则输出应该为空。否则,输出应该是访问输入对象的方法或属性的结果。

我在第一个例子中已经做到了这一点,但是(input == null) ? null : input.Trim()非常冗长且难以阅读。

对于这种情况还有其他条件表达式吗,或者我可以使用??优雅地操作?


像 Groovy 的空安全解引用运算符之类的东西?

string zipCode = customer?.Address?.ZipCode;

我猜想 C# 团队已经研究过这个问题,发现它并不像人们想象的那样简单优雅地设计......尽管我还没有听说过问题的细节。

恐怕我现在不相信该语言中有任何这样的事情......而且我还没有听说过任何相关计划,尽管这并不是说它在某个时候不会发生。

编辑:它现在将成为 C# 6 的一部分,作为“空条件运算符”。

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

C# if-null-then-null 表达式 的相关文章

随机推荐

  • pickle - 在一个文件中放置超过 1 个对象? [复制]

    这个问题在这里已经有答案了 我有一种方法可以将许多腌制对象 实际上是元组 转储到文件中 我不想将它们放入一个列表中 我真的想多次转储到同一个文件中 我的问题是 如何再次加载对象 第一个和第二个对象只有一行长 因此这适用于读取行 但其他的都更
  • 在 Kotlin (Android) 中将文本资产(来自资产文件夹的文本文件)读取为字符串

    我需要读取存储在的文本文件src main assets IE 在资产文件夹中并将其作为字符串获取 有没有简单的方法可以做到 Java 的复制 粘贴 转换函数很麻烦 所以我宁愿使用 kotlin 的方式 我需要一种 kotlin 方式来做到
  • Backbone.js 基于url片段的状态管理/视图初始化

    我正在尝试使用 Backbone js 跟踪此应用程序中的状态 我有一个带有一组默认值的 ChartAppModel ChartAppModel Backbone Model extend defaults countries select
  • 使用 @Input 装饰器访问传递的数据

    我有一个看起来像这样的子组件 子组件 Component selector child component TemplateUrl Styles and Providers export Class ChildComponent imple
  • 离开页面时显示带有“onbeforeunload”的警告,除非单击“提交”

    如果用户尝试离开包含未保存设置的页面 我希望显示警告 但如果他们尝试保存这些设置 则显然不会 我想我的理解是错误的 因为我认为下面的内容应该有效 但事实并非如此 有人可以告诉我我做错了什么吗 谢谢 input name Submit off
  • 从控制台应用程序记录 SOAP 消息

    我正在尝试将我开发的控制台应用程序和特定第三方远程 SOAP Web 服务之间的请求和响应 原始 XML SOAP 信封 记录到数据库以进行审计 但我找不到方法来做到这一点 理想情况下我想做的是收到请求
  • EventBus、注册和registerSticky方法

    我使用 greenrobot EventBus 库在我的 android 应用程序中的两个片段之间发送数据 我想知道两者之间有什么区别register Object b 方法和registerSticky Object object met
  • Couchbase 从范围内的所有集合中检索所有文档

    是否可以在没有 N1QL 查询的情况下从某个范围内的所有集合中检索所有文档 由于数据量巨大 我们试图避免创建索引 因此无法执行 N1QL 放置此类数据的集群是归档存储 不会被频繁访问 新的 KV 范围扫描功能将执行此操作 scan 方法 h
  • 将 Spark 数据帧导出到带有标题和特定文件名的 .csv

    我正在尝试将数据从 Spark 数据帧导出到 csv 文件 df coalesce 1 write format com databricks spark csv option header true save output path 它正
  • 如何在一项活动中拥有多个 navHostFragment?

    我希望在一个活动中有三个 navHostFragment 它们都占用相同的空间 但每个都托管不同的导航图 然后使用片段管理器和底部导航栏 我想在需要时显示每个 并隐藏其他 这样就可以保持用户在每个图表中的当前位置 我目前在尝试在一项活动中使
  • 使用 MASI 距离的 NLTK 协议的低 alpha

    当我使用 MASI 作为距离函数计算 NLTK 中的一致性时 我得到的 Krippendorff alpha 值非常低 三个编码员 Inky Blinky 和 Sue 被指示根据文本的内容为两个文本 text01 和 text02 分配主题
  • 使用 Heroku、Rails 时出现 Heroku 500 错误 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在尝试使用回形针将图像上传到 S3 目前它在开发中运行得很好 但是当我将它推送到 heroku 时 我得到的状态是
  • 如何使用蓝牙查找范围内的设备?

    我是 android 新手 我想开发一个应用程序 通过编程方式使用蓝牙来查找范围内的设备 如果有人有想法 请给我一些示例代码 Find The Devices in the Range by using Bluetooth programm
  • 如何使用 numpy 计算统计数据“t 检验”

    我正在寻找有关我在 python 中创建的模型的一些统计数据 我想对其生成 t 检验 但想知道是否有一种简单的方法可以使用 numpy scipy 来执行此操作 周围有什么好的解释吗 例如 我有三个相关的数据集 如下所示 55 0 55 0
  • SUMIF 的 Google Apps 脚本替代方案

    我对 JavaScript 相当陌生 希望通过制作一些简单的脚本来进步我的学习 这些脚本将帮助我自动化一些流程 我的第一个脚本是从电子表格中查找客户的预算 以便我可以计算活动是否需要暂停 到目前为止我已经得到了这个 function mai
  • 切换回packages.config - 答案澄清

    根据规则 我必须提出一个新问题 以获得对另一个问题 答案的一些澄清 这个答案是这样的 https stackoverflow com a 45964469 305916 https stackoverflow com a 45964469
  • 带有 html 内容的 bootstrap 弹出窗口

    我试图将 bootstrap popover 内容与 html 属性分开 就像对其他组件所做的那样 但我无法让它工作
  • Composer更新和Composer全局更新之间的区别

    两者有什么区别composer update and composer global update在yii2中 这与 Yii 没有直接关系 Composer 允许您全局或每个项目 默认 安装依赖项 https getcomposer org
  • 旧代码给出“未使用的参数”错误,但以前从未出现过

    我打开了一些旧的 iOS 代码 当我尝试构建它时 我收到如下代码的 未使用参数 错误 void searchBarTextDidBeginEditing UISearchBar searchBar NSLog Search Bar isn
  • C# if-null-then-null 表达式

    只是为了好奇 方便 C 提供了我所知道的两个很酷的条件表达式功能 string trimmed input null null input Trim and string trimmed input Trim 对于我经常遇到的情况 我想念另