在检查类型时,是否最好使用“;是“;用“;作为“;或者仅仅是“;作为“;以及空检查
本文关键字:作为 检查 或者 仅仅是 类型 是否 | 更新日期: 2023-09-27 18:29:57
可能重复:
铸造与使用';作为';CLR中的关键字
先铸造后检查还是先检查后铸造?
假设以下代码设置:
public class BaseFoo { ... }
public class DerivedFoo : BaseFoo { ... }
现在,我有一个名为foo
的BaseFoo
对象,它实际上可能是DerivedFoo
类型,也可能不是。如果它是一个DerivedFoo
对象,我需要添加几个步骤来处理它
选项1:
if (foo is DerivedFoo)
{
var dfoo = foo as DerivedFoo;
// Continue processing...
}
选项2:
var dfoo = foo as DerivedFoo;
if (dfoo != null)
{
// Continue processing...
}
就我个人而言,我认为选项1更具可读性和简洁性,但我想知道我是否遗漏了任何性能打击或行为差异。
要检查对象是否属于某个类,只需使用运算符"is"即可。
if (object is ClassName)
{ }
如果是,将返回纯true,如果为null或trully false则返回false。