簡體   English   中英

C#:你如何獲得一個班級的基礎班?

[英]C# : how do you obtain a class' base class?

在C#中,如何獲取對給定類的基類的引用?

例如,假設您有一個特定的類MyClass ,並且您希望獲得對MyClass的超類的引用。

我記得這樣的事情:

Type  superClass = MyClass.GetBase() ;
// then, do something with superClass

但是,似乎沒有合適的GetBase方法。

使用當前類的類型中的反射。

 Type superClass = myClass.GetType().BaseType;
Type superClass = typeof(MyClass).BaseType;

此外,如果您不知道當前對象的類型,可以使用GetType獲取類型,然后獲取該類型的BaseType:

Type baseClass = myObject.GetType().BaseType;

文件

這將獲得基類型(如果存在)並創建它的實例:

Type baseType = typeof(MyClass).BaseType;
object o = null;
if(baseType != null) {
    o = Activator.CreateInstance(baseType);
}

或者,如果您在編譯時不知道類型,請使用以下命令:

object myObject;
Type baseType = myObject.GetType().BaseType;
object o = null;
if(baseType != null) {
    o = Activator.CreateInstance(baseType);
}

請參閱MSDN上的Type.BaseTypeActivator.CreateInstance

您正在尋找Type.BaseType屬性。

Type  superClass = typeof(MyClass).BaseType;

obj.base將從派生對象obj的實例中獲取對父對象的引用。

typeof(obj).BaseType將從派生對象obj的實例中獲取對父對象類型的引用。

如果要檢查,如果一個類是另一個可以使用子類。

if (variable is superclass){ //do stuff }

文檔: https//msdn.microsoft.com/en-us/library/scekt9xw.aspx

你可以使用base。

暫無
暫無

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

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