在C#,一个人如何获得对基类的给定类的引用?
例如,假设你有一定的阶级, MyClass
,和你想获得一个参考MyClass
'超。
我想到的是这样的:
Type superClass = MyClass.GetBase() ;
// then, do something with superClass
然而,似乎没有合适GetBase
方法。
在C#,一个人如何获得对基类的给定类的引用?
例如,假设你有一定的阶级, MyClass
,和你想获得一个参考MyClass
'超。
我想到的是这样的:
Type superClass = MyClass.GetBase() ;
// then, do something with superClass
然而,似乎没有合适GetBase
方法。
从当前类的类型使用反射。
Type superClass = myClass.GetType().BaseType;
Type superClass = typeof(MyClass).BaseType;
此外,如果你不知道你的当前对象的类型,可以使用的GetType获取类型,然后让这种类型的基本类型:
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);
}
见Type.BaseType
和Activator.CreateInstance
MSDN上。
该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
你可以使用基地。