C# is 运算符
is 运算符检查表达式的结果是否与给定的类型相匹配。 有关类型测试 is 运算符的信息,请参阅文章类型测试和强制转换运算符的 is 运算符部分。
从 C# 7.0 开始,还可使用 is 运算符将表达式与模式相匹配,如下例所示:
1 |
|
在前面的示例中,is 运算符将表达式与带有嵌套常量和关系(在 C# 9.0 和更高版本中可用)模式的属性模式(在 C# 8.0 和更高版本中可用)相匹配。
is 运算符在以下应用场景中很有用:
- 检查表达式的运行时类型,如下例所示:
1 |
|
前面的示例演示声明模式的用法。
- 检查是否为 null,如下例所示:
1 |
|
将表达式与 null 匹配时,编译器保证不会调用用户重载的 == 或 != 运算符。 从 C# 11 开始,可以对不受约束的泛型类型使用 is null。
- 从 C# 9.0 开始,可使用否定模式 执行非 null 检查,如下例所示:
1 |
|
- 从 C# 11 开始,可以使用 列表模式 来匹配列表或数组的元素。 以下代码检查数组中是否处于预期位置的整数值:
1 |
|
本文来自:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/is