pattern-matching - '是之间的区别' 和 '== 常数'
问题描述
C# 7.0 引入了模式匹配,其中一种模式是常量模式。
所以现在可以写:
int? i = 0
if (i is null) {..}
甚至
if (i is 0) {..}
这与==
平等相比如何?
哪个运算符用于比较值?
解决方案
int? i = 0;
if (i is null) {}
if (i is 0) {}
被翻译成:
int? num = 0;
if (!num.HasValue) {}
if (object.Equals(0, num)) {}
推荐阅读
- javascript - 将状态从一个 React 组件传递到另一个
- c# - jsonTextReader.LinePosition > 1000 时 json 反序列化时出错
- sql-server - 在 MS 数据库之间复制存储过程
- java - 在 Chrome 中执行 Selenium 自动化套件时出现“Aw!Snap”问题
- traefik - 多个 docker 主机
- python - Pandas Dataframe 中的一些浮点值未转换为 int
- angular - 如何从网站解析 HTML,例如。计算 Angular 中的单词
- php - PHP - 计算列层次结构中的一些值
- python - 如何在 json 列表中搜索 django
- c# - 无法加载文件或程序集“Microsoft.IdentityModel.Protocols.WsFederation,