“如果对象为空,则为 null,如果对象不为空,则为 object.member”的快捷方式[重复]

2023-11-21

我正在尝试编写一个通用扩展方法,让我可以这样做:

this.startDate = startDateXAttribute.NullOrPropertyOf<DateTime>(() =>
{
    return DateTime.Parse(startDateXAttribute.Value);
});

NullOrPropertyOf()会回来null如果它用在null对象(例如,如果startDateXAttribute was null),或者返回 a 的结果Func如果它不为空。

这个扩展方法会是什么样子?


没有简短的形式;实现一个是一项相当频繁要求的功能。语法可能类似于:

x = foo.?bar.?baz;

也就是说,如果 foo 或 foo.bar 为 null,则 x 为 null;如果它们都不为 null,则 foo.bar.baz 的结果为 null。

我们考虑将其用于 C# 4,但它并没有排在优先级列表顶部附近。我们会在假设的该语言的未来版本中记住这一点。

更新:C# 6 将具有此功能。看http://roslyn.codeplex.com/discussions/540883讨论设计考虑因素。

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

“如果对象为空,则为 null,如果对象不为空,则为 object.member”的快捷方式[重复] 的相关文章

  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 获取从属性构造函数内部应用到哪个属性的成员?

    我有一个自定义属性 在自定义属性的构造函数内 我想将属性的属性值设置为属性所应用到的属性的类型 是否有某种方式可以访问该属性所应用到的成员从我的属性类内部 可以从 NET 4 5 using CallerMemberName Somethi
  • 为什么 BOOST_FOREACH 不完全等同于手工编码的?

    From 增强文档 http www boost org doc libs 1 48 0 doc html foreach html foreach introduction what is literal boost foreach li
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • 为什么 std::allocator 在 C++17 中丢失成员类型/函数?

    一边看着std 分配器 http en cppreference com w cpp memory allocator 我看到成员 value type pointer const pointer reference const refer
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • 如何在 C++03 中将 boost packaged_task 发布到 io_service?

    这是上一个问题的后续问题 here 但我正在开发一个多线程应用程序 我想将 Boost packaged task 发布到线程 io service 我被困在使用 C 03 编译器 所以 std move 已退出 并且 packaged t
  • WPF GridViewColumn Width="auto" 仅适用于当前滚动范围内的项目

    我有一个包含许多项目的 ListView 并尝试将列宽度设置为自动 以便它们自动扩展到列中最长字符串的宽度 起初 它似乎有效 但当我向下滚动列表时 我注意到一些较长的字符串被剪短了 因为该列没有足够的自动扩展 然后我想到 将宽度设置为自动似
  • 匹配正数的正则表达式

    我需要编写一个正则表达式以仅允许正数 整数或小数 我发现了这个 0 0 0 0 00 d d d 0 9 但它只接受最多 2 位小数 我必须进行哪些更改才能使其接受任意位数的小数 另外我在哪里可以找到学习正则表达式的好教程 预先感谢 这将是
  • 将 MATLAB 字符数组转换为字符串

    从 MATLAB 字符数组开始 A A 1 1 A A 1 2 P A 1 3 R A 2 1 M A 2 2 A A 2 3 Y 如何将其转换为字符串单元格 B 这样 B 1 APR B 2 MAY 编辑 A 是一个单元格 使用函数 ce
  • 删除JS数组中最小的数字

    我有一个数字数组 2 1 3 4 5 1 想要删除列表中的最小数字 但不知怎的 我的 IF 语句被跳过了 我检查过 numbers i 1 和 numbers i 本身确实有效 但 numbers i 1 function removeSm
  • ComponentDidCatch 不起作用

    Why componentDidCatch在我的反应本机应用程序中不起作用 componentDidCatch不处理错误 React native v 50 3 React 16 0 0 import React Component fro
  • 递归获取 Active Directory 组的成员,即包括子组

    在 Active Directory 中给定一个这样的组 MainGroup GroupA User1 User2 GroupB User3 User4 我可以使用如下代码轻松确定 User3 是否是 MainGroup 或其任何子组的成员
  • 如何使用 Apache 配置设置 SameSite cookie 属性?

    我无法在 应用程序 选项卡中使用内置开发人员工具看到 SameSite Strict 我在 Apache 配置中添加了以下标头代码 Header always edit Set Cookie 1 SameSite Strict Header
  • PHP GMAIL 使用 DOMDocument 和 cURL 联系 XML 解析

    我当前想要获取的只是 gd email 的属性 即 address 目前仅此而已 我可以到达 xml 部分 哎呀 我什至可以得到任何给定的想法 只要它在标签之内 但要获取任何给定的属性 就像我的情况一样 我完全困惑了 我曾经知道如何做到这一
  • Persistence.createEntityManagerFactory() 需要很长时间才能返回

    我正在使用 Hibernate 4 2 JPA 2 0 和 Postgres 9 2 代码卡在Persistence createEntityManagerFactory peristence unit name 经过进一步调查 我发现 H
  • String.Format进行四舍五入,无法定位非法格式转换源错误?

    我正在编写一个程序 让用户输入 6 个温度读数 然后 返回最高原始值 celcius版本 返回原始值 转换为摄氏度版本 设置数组值的代码如下 System out print Enter Temperature t Get the coun
  • JavaScript 获取 Audio.setSinkId 的权限

    我正在尝试改变sinkId在 Chrome 应用程序中的音频元素处 Code var audio new Audio audio setSinkId communications 我会收到这个错误 DOMException No permi
  • svn + ssh 没有命令行密码?

    我想要做 svn update Users radek Sites 3 0 5 r HEAD force 无需输入密码 svn 连接到我们的存储库服务器 但我不确定使用什么用户名 我怎样才能找到 我想要么是root or radek 我为
  • 在 R markdown 中嵌入绘图输出

    有一个博客条目它描述了从 R 的plotly API 嵌入到 R markdown 中 我只是使用代码为 html 文档创建 iframe 当我在 R studio 中预览时 没有错误消息 并且 iframe 是在 html 文档中创建的
  • Azure AD 通过 Azure CLI 添加密钥

    我正在尝试使用 Azure CLI 在我的 Azure AD 应用程序中添加密钥 但查看Azure CLI API似乎没有这样的命令 例如 我正在尝试通过 Azure CLI 从下面的链接自动执行该任务 http blog davidebb
  • 以编程方式更改休眠批量大小

    是否可以以编程方式更改 hibernate jdbc batch size 我明白 hibernate jdbc batch size是一个应用程序级别的参数 想知道我是否可以使用它 专门针对某些 HQL 插入而不是其他插入 我只会更改那些
  • xml.dom.minidom:获取 CDATA 值

    我能够获取图像标签中的值 请参阅下面的 XML 但不能获取类别标签中的值 区别在于一个是 CDATA 部分 另一个只是一个字符串 任何帮助 将不胜感激 from xml dom import minidom xml
  • 全屏启动时应用程序停留在任务栏后面[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 这是我正在使用的代码 BorderStyle bsNo
  • 获取未解释 HTML 的 HTML 元素的原始文本内容

    我用谷歌搜索了我的大脑 但不知道如何实现这一点 这是我想做的 HTML div quot Hi my name is quot div JavaScript var div document getElementById derp aler
  • “如果对象为空,则为 null,如果对象不为空,则为 object.member”的快捷方式[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个通用扩展方法 让我可以这样做 this startDate startDateXAttribute NullOrPropertyOf