C# 空条件运算符和等待错误

2024-03-14

在 C# 中使用新的 null 条件运算符时,我遇到了一个有趣的 System.NullReferenceException。如果“MyObject”为 null,以下代码将给出 NullReferenceException:

await this.MyObject?.MyMethod()

我预计如果“MyObject”为空,则根本不会调用“MyMethod”,或者我是否误解了空条件运算符的目的?


你可以加??运算符所以如果?.返回 null 任务,使用 CompletedTask 代替。

await (this.MyObject?.MyMethod() ?? Task.CompletedTask)

我预计如果“MyObject”为空,则根本不会调用“MyMethod”。

这是真的。这?.运算符返回空任务而不是调用MyMethod。发生空引用异常是因为您无法等待空任务。任务必须初始化。

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

C# 空条件运算符和等待错误 的相关文章

  • 检测到 NuGet 包的版本冲突

    我正在开发 ASP Net core 2 1 Web 应用程序项目 我的解决方案中有 1 个项目和 3 个其他库 它是高级架构 数据访问层 DAL 业务层 BL 公共层 CL 所以我需要添加引用来连接一些库和项目 我已经添加了CL参考我的项
  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • 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
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

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

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • 从数据库检索数据并将其显示在 php 的表中..看看这段代码有什么问题吗? [复制]

    这个问题在这里已经有答案了 db mysql connect localhost root er mysql select db ram query insert into names values name add1 add2 mail
  • Moose:如何获取对象数组?特质?

    我开始意识到这适合初学者 package Bad has arr gt is gt rw ArrayRef Str package main my bad Bad gt new arr gt foo bar print bad gt arr
  • 如何在 d3 中使用 mousedown 获取鼠标坐标?

    我正在尝试在 D3 中创建一个图形 您可以在其中绘制一个正方形来放大 现在 我正在尝试让 mousedown 功能正常工作 我需要能够单击图表中的任意位置并获取坐标 这就是我现在所拥有的 svg on mousedown mousedown
  • 批处理文件调用 %~1 并获取变量的当前值/字符串

    下面的代码与批处理文件 命令提示符 相关 我的问题是代码的一部分current value is 1实际上并不显示的值 1 我希望它说 string01 或 string02 我不太确定如何做到这一点 我环顾四周 但无法解决这个简单的问题
  • 如何创建多语言 Android 应用程序?

    我想创建一个多语言 Android 应用程序 有没有办法检测用户喜欢哪种语言 是否有推荐的方法在 Android 上管理多种语言 或者我应该重新发明轮子 是的 有一个推荐的方法来管理多种语言 对于 Android 来说 多语言支持很容易完成
  • 无法弄清楚为什么我在 Swift iOS 应用程序代码中收到“Class ViewController has noinitializer”错误

    我试图在我的 iOS 应用程序中制作一个教程屏幕 用户可以在其中滑动几张图片来了解有关该应用程序的一些信息 一切看起来都很好 除了当我构建项目时 我在第一行代码中收到以下错误 ViewController 类没有初始化器 我做错了什么 我的
  • 按变量对轴文本进行颜色显示

    我想根据数据集中的另一个变量来改变热图轴文本的颜色 这是我到目前为止所尝试过的 load data scale numeric columns add state abbreviation and region state data lt
  • 在哪里可以找到详尽的停用词列表?

    我在哪里可以找到详尽的停用词列表 我的那篇文章很短 似乎不适用于科学文本 我正在创建词汇链以从科学论文中提取关键主题 问题是像这样的词based regarding等也应被视为停用词 因为它们没有太多意义 您还可以轻松添加到现有的停用词列表
  • Xcode 8 内存图显示“无选择”且无法工作

    我正在使用 Xcode 8 0 和 Swift3 处理一个项目 我想使用内存图调试器 但它什么也没显示 预期外观 来自教程 为什么我不能使用这个功能 该项目是使用 Xcode 8 创建的 不是从旧版本的 Xcode 迁移的 bitcode与
  • protractor 2.5.4 E/launcher - 会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 79

    我进行了大量研究并使用了各个论坛中提到的许多可能的解决方案 但没有一个对我有用 我试图在 CI CD 管道中运行它 尽管能够在本地运行量角器测试用例并能够启动浏览器 但在 CI CD 管道构建中它失败了 详细信息如下 我在 package
  • 更改已验证应用程序的应用程序名称 - Google OAuth 同意屏幕

    我有一个经过验证的应用程序 我想更改 OAuth 同意屏幕应用程序名称 仅应用程序名称 为了做到这一点 似乎我需要再次重新验证这一点 但我的应用程序现在已经在生产中 如果我提交它进行验证 当前已验证的 OAuth 屏幕是否会突然显示为未验证
  • Python 正则表达式的 unicode 文本中使用的字边界

    我想在正则表达式中使用单词边界来匹配一些 unicode 文本 Unicode 字母在 Python 正则表达式中被检测为单词边界 如下所示 gt gt gt re search r by b y lt sre SRE Match obje
  • 如何正确卸载python jupyter?

    I have jupyter安装有python3 5 on my Mac OSX 但我想要python2 7版本 所以 我基本上需要卸载3 5版本 然后重新安装2 7版本 但由于某种原因我无法卸载3 5版本 我试过sudo python3
  • Python中使用行数作为输入变量分割大文本文件的快速方法

    我使用行数作为变量来分割文本文件 我编写这个函数是为了将吐出的文件保存在临时目录中 除最后一个文件外 每个文件有 4 百万行 import tempfile from itertools import groupby count temp
  • 如何避免 AS3 代码混乱

    我使用 ActionScript 3 进行编程已经有一段时间了 我注意到我的代码的自然进展似乎采用一个巨大的文档类的形式 其中包含数十个成员变量 回调和舞台上对象的句柄 简而言之 有点乱 问题是 我真的没有找到解决办法 至少目前还没有 我在
  • 不使用提交按钮提交表单

    我正在使用表单提交数据以从数据库中获取记录 在表单中 我使用两个选择标签选项 因此 选择选项后 表单应提交不使用提交按钮 我正在等待选择输入后提交表单的响应 而不使用它应该自动提交的提交按钮 或任何按钮 创建一个函数来检查您想要的所有内容是
  • 在java中连接两个json对象

    我想连接多个 json 对象 我有两个像这样的json message test status 0 and this message test 2 status 1 结果必须是 message test status 0 message t
  • Kotlin 多平台“转到声明”转到反编译代码

    当使用 Android Studio 的 转到声明 功能 cmd 单击 时 尽管源位于我的项目中 但会显示反编译的源 kotlin MP 源位于另一个模块中 我可以使用 选择源 选项连接源 但是我必须对每个文件执行此操作 是否有用于连接到正
  • Azure B2C 问题和疑问

    我已经使用 Azure B2C 几天了 有一些问题和疑问 它创建的用于重定向登录的 URL 格式不正确 它包含两次问号 在网址之后 在配置文件名称之后再次 这会在您每次登录 注销等时导致 404 未找到错误 例如 它尝试重定向到的登录 UR
  • C# 空条件运算符和等待错误

    在 C 中使用新的 null 条件运算符时 我遇到了一个有趣的 System NullReferenceException 如果 MyObject 为 null 以下代码将给出 NullReferenceException await th