c# - 在 C# 8.0 中调用方法之前的感叹号是什么意思?
问题描述
我发现用 C# 编写的代码似乎是 8.0 版。在代码中,在调用方法之前有一个感叹号。这部分代码是什么意思,最重要的是,它的用途是什么?
var foo = Entity!.DoSomething();
解决方案
这将是null 宽恕运算符。
它告诉编译器“这不是空的,相信我”,因此它不会针对可能的空引用发出警告。
在这种特殊情况下,它告诉编译器Entity
不为空。
推荐阅读
- c++ - 无法使用带有 const 引用的 lambda 对 std::vector 进行排序
- arrays - 如何将字节数组拆分为 4 个字节并将结果转换为浮点数?
- visual-studio-code - TS-开玩笑;如何删除 linter 错误?
- ruby-on-rails - 从 Mac/Windows 移动更新文件的最佳方法是什么
- optimization - 如何避免 SFTP 上的重复文件处理
- linux - 在 Linux 上使用 QT 设置系统时钟
- python - 在 matplotlib 的同一轴上为刻度标签使用多种字体
- java - 使用 Jaeger 进行跟踪不适用于 docker-compose
- android - Ionic Android RuntimeException FirebaseInitProvider IllegalArgumentException: Given String is empty or null
- perl - 与 PSGI/Dancer 堆栈相关的 Nginx 单元