c# - 在 c# 的开关中使用 'is' 关键字

标签 c# switch-statement

我目前正在向这段代码中添加一些新的扩展类:

foreach (BaseType b in CollectionOfExtendedTypes) {
  if (b is ExtendedType1) {
    ((ExtendedType1) b).foo = this;

  }
  else if (b is ExtendedType2) {
    ((ExtenedType2) b).foo = this;

  } 
  else {
    b.foo = this;

  }
}

并且很好奇是否有办法在 switch 语句中使用 is 关键字功能?

最佳答案

最新版本的 C# (7) 现在包含此功能

Type pattern

类型模式支持简洁的类型评估和转换。当与 switch 语句一起使用进行模式匹配时,它测试表达式是否可以转换为指定类型,如果可以,则将其强制转换为该类型的变量。它的语法是:

   case type varname 

关于c# - 在 c# 的开关中使用 'is' 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223643/

相关文章:

java - 不同switch case中的变量不能重名?

java - Thymeleaf 整数开关盒

c# - 有没有办法为 ModelMetadata.RelatedEntities 获取 ModelMetadata.Properties?

c# - VB 中的静态类构造函数

c# - 将 .NET 与 nodejs(加密)进行比较时哈希值不同

c# - 将命令映射到方法

java - switch 语句,一次只使用一种情况

c# - 具有动态参数的整数类型预期开关的值

c - 使用 C 中的日历概念计算错误的日期

c# - 实现业务规则的规范模式