C#:如何获得一个类? 基类?
在 C# 中,如何获取对给定类的基类的引用?
例如,假设您有一个特定的类 MyClass
,并且您想要获取对 MyClass
超类的引用。
我想到的是这样的:
Type superClass = MyClass.GetBase() ;
// then, do something with superClass
但是,似乎没有合适的 GetBase 方法。
In C#, how does one obtain a reference to the base class of a given class?
For example, suppose you have a certain class, MyClass
, and you want to obtain a reference to MyClass
' superclass.
I have in mind something like this:
Type superClass = MyClass.GetBase() ;
// then, do something with superClass
However, it appears there is no suitable GetBase
method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
使用当前类的类型的反射。
Use Reflection from the Type of the current class.
此外,如果您不知道当前对象的类型,可以使用 GetType 获取类型,然后获取该类型的 BaseType:
文档
Additionally, if you don't know the type of your current object, you can get the type using GetType and then get the BaseType of that type:
documentation
这将获取基本类型(如果存在)并创建它的实例:
或者,如果您在编译时不知道类型,请使用以下命令:
请参阅
Type.BaseType
和Activator.CreateInstance
。This will get the base type (if it exists) and create an instance of it:
Alternatively, if you don't know the type at compile time use the following:
See
Type.BaseType
andActivator.CreateInstance
on MSDN.如果你想检查一个类是否是另一个类的子类,你可以使用is。
文档: https://msdn.microsoft.com/en-us/library/scekt9xw .aspx
if you want to check if a class is subclass of another you can use is.
Docs: https://msdn.microsoft.com/en-us/library/scekt9xw.aspx
Type.BaseType 属性就是您的属性寻找。
The Type.BaseType property is what you're looking for.
obj.base 将从派生对象 obj 的实例中获取对父对象的引用。
typeof(obj).BaseType 将从派生对象 obj 的实例中获取对父对象类型的引用。
obj.base will get you a reference to the parent object from an instance of the derived object obj.
typeof(obj).BaseType will get you a reference to the parent object's type from an instance of the derived object obj.
你可以只使用base。
you can just use base.