当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在c#中的开关中使用'is'关键字》经验,为你挑选了3个好方法。

我目前正在为此代码添加一些新的扩展类:

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;

  }
}

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



1> Austin Salon..:

这看起来像是一个良好的多态实现的情况.如果覆盖派生类中的相应方法,则可能根本不需要循环中的检查.



2> MikeT..:

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

键入模式

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

   case type varname 



3> harpo..:

不.看到

C#switch语句限制 - 为什么?

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有