簡體   English   中英

如何檢查C#中的類是否是子類?

[英]How do I check if a Class is a Subclass in C#?

我搜索了一段時間,但似乎找不到該問題的答案。 我需要弄清楚我當前正在查看的對象是Subclass,還是它是從另一個類繼承的。 我不需要知道這個類是否可以從另一個繼承,而只是知道它是否是一個子類。 在當前上下文中,我無法知道父類是什么,因此無法使用:

  • typeof(Derived).IsSubclassOf(typeof(Base))
  • typeof(Base).IsAssignableFrom(typeof(Derived))
  • 我不能使用isas

我可以在Type類或PropertyInfo類上進行檢查嗎?

C#中的每個類都是從Object派生的,因此這意味着要檢查給定的類是否為子類,可以檢查Type的Baseclass屬性。 以下是摘要。

class Base {
}
class Derived : Base
{
}

現在,如果您檢查

var isBase = typeof(Base).BaseType == typeof(Object) // true
isBase =  typeof(Derived).BaseType == typeof(Object) // false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM