本文介绍了为什么运算符的行为类似于==运算符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我们有这样的声明:
Assume we have statement like this:
enum EngineType
{
Gasoline,
Diesel,
Electric
}
var engine = EngineType.Electric;
if (engine is EngineType.Electric)
{
// do something
}
为什么if语句为true.从Microsoft文档中: is运算符检查表达式的结果是否与给定类型兼容.
Why does if statement is true. From microsoft documentation:The is operator checks if the result of an expression is compatible with a given type.
EngineType(枚举)的左值类型和整数的右值类型不是吗?我想念什么吗?
Isn't the left value type of EngineType (enum) and right value type of integer?Am I missing something?
推荐答案
因为使用是关键字,您实际上是在进行模式匹配(从C#7.0开始):
Because when you use the is keyword this way, you are actually doing Pattern Matching (starting with C# 7.0) :
这篇关于为什么运算符的行为类似于==运算符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!