c# - 为什么用非类型检查变量不是错误
问题描述
看到很多同事误用
x is true
检查变量是否为true
.
无论是否有必要使用is
或正确==
检查布尔值是否为真,我想了解为什么这不是编译错误。
is 运算符检查表达式的结果是否与给定类型兼容。
AFAIKtrue
不是一种类型。
有趣的是,这也适用于整数。
更新:我使用W3 提供的在线编辑器进行了尝试,它曾经是一个错误。模式匹配是否在 C# 8 中改变了这种行为?
所以在 C# 8中x is true
做同样的事情(即使没有?x == true
{}
解决方案
推荐阅读
- flutter - 为什么我不能在子小部件中使用我为 onTap 传递的函数?
- loops - 尝试将姓名和年龄写入文本文件
- flutter - 如何在 Flutter 中将英文数字转换为另一种语言数字(我使用的是孟加拉语)?
- python - 具有透明框架和不透明边缘的图例
- javascript - 如何使用 Appium / webdriverio“点击”和/或“按下”按钮?
- c# - 带非字符串的两种方式数据/事件绑定 (Blazor)
- node.js - 如何停止数据库承诺阻塞 Express 服务器中的主线程?
- python-3.x - 带有正则表达式的熊猫系列上的rsplit不起作用
- r - 如何编辑 DT 列并保存更改以触发相关列中的计算?
- android - 安卓。仅当 ScrollView 可滚动时才显示滚动条