-->

C#中:你如何获取类基地班呢?(C# : how do you obtain a class'

2019-07-29 22:45发布

在C#,一个人如何获得对基类的给定类的引用?

例如,假设你有一定的阶级, MyClass ,和你想获得一个参考MyClass '超。

我想到的是这样的:

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

然而,似乎没有合适GetBase方法。

Answer 1:

从当前类的类型使用反射。

 Type superClass = myClass.GetType().BaseType;


Answer 2:

Type superClass = typeof(MyClass).BaseType;

此外,如果你不知道你的当前对象的类型,可以使用的GetType获取类型,然后让这种类型的基本类型:

Type baseClass = myObject.GetType().BaseType;

文件



Answer 3:

这将让基本类型(如果存在的话),并创建它的一个实例:

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);
}

Type.BaseTypeActivator.CreateInstance MSDN上。



Answer 4:

该Type.BaseType属性是你在找什么。

Type  superClass = typeof(MyClass).BaseType;


Answer 5:

obj.base将让你的父对象的引用从派生obj对象的实例。

typeof运算(OBJ).BaseType将让你从派生obj对象的实例,以父对象的类型的引用。



Answer 6:

如果要检查,如果一个类是另一个可以使用子类。

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

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



Answer 7:

你可以使用基地。



文章来源: C# : how do you obtain a class' base class?
标签: c# superclass