如何检查类是否属于某种类型,而忽略继承?

c#

假设我有一个这样的父类和一个子类:

public class Parent{}
public class Child : Parent{}

现在在某些方法中,我想找到 type 的类Parent,但我对 type 的类不感兴趣Child。所以让我们说我做这样的事情:

var listOfParents = new List<Parent>();

foreach(item in someListOfItems)
{
   if(item is Parent)
   {
      listOfParents.Add(item);
   }

} 

这将为我提供所有类型的类Parent,但也会提供所有类型的类Child,因为它实现了Parent. 我怎么能只检索类型的类Parent而忽略所有子类?我也想避免做很多if检查,if (item is Parent && !(item is Child)因为如果有很多类实现Parent.

回答

使用GetType

if(item.GetType() == typeof(Parent))

请注意,这将引发NullReferenceException对时itemnull不像类型检查is


以上是如何检查类是否属于某种类型,而忽略继承?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>