gpt4 book ai didi

c# - 如何检查一个类是否属于某种类型,忽略继承?

转载 作者:行者123 更新时间:2023-12-04 00:13:28 48 4
gpt4 key购买 nike

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

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

现在在某些方法中,我想查找 Parent 类型的类,但我对 Child 类型的类不感兴趣。所以可以说我做了这样的事情:

var listOfParents = new List<Parent>();

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

}

这将为我提供所有类型为 Parent 的类,以及所有类型为 Child 的类,因为它实现了 Parent。我怎么能只检索 Parent 类型的类而忽略所有子类?我还想避免像 if (item is Parent && !(item is Child) 这样进行大量 if 检查,因为如果有很多类实现 家长.

最佳答案

使用 GetType :

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

请注意,这将抛出 NullReferenceExceptionitemnull不像类型检查 is .

关于c# - 如何检查一个类是否属于某种类型,忽略继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66262911/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com