假设我有一个这样的父类和一个子类:
public class Parent{}
Run Code Online (Sandbox Code Playgroud)
public class Child : Parent{}
Run Code Online (Sandbox Code Playgroud)
现在在某些方法中,我想找到 type 的类Parent,但我对 type 的类不感兴趣Child。所以让我们说我做这样的事情:
var listOfParents = new List<Parent>();
foreach(item in someListOfItems)
{
if(item is Parent)
{
listOfParents.Add(item);
}
}
Run Code Online (Sandbox Code Playgroud)
这将为我提供所有类型的类Parent,但也会提供所有类型的类Child,因为它实现了Parent. 我怎么能只检索类型的类Parent而忽略所有子类?我也想避免做很多if检查,if (item is Parent && !(item is Child)因为如果有很多类实现Parent.
使用GetType:
if(item.GetType() == typeof(Parent))
Run Code Online (Sandbox Code Playgroud)
请注意,这将引发NullReferenceException对时item是null不像类型检查is。
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |