【问题标题】:How to find the child class name from base class?如何从基类中找到子类名称?
【发布时间】:2011-01-23 16:14:40
【问题描述】:

run-time,在base class里面,如何找到当前的子类名?

【问题讨论】:

  • “当前子类名”是什么意思?
  • 是的,很多孩子都继承了base class,我想要当前使用base class的人
  • 如果你想知道实际的类,你可以使用is 操作符,例如if (this is BaseClass1) { some code here }
  • @Xaq 你的 Austin 名字有错字,他不会收到通知。你只能有 @Aus 来减少这种错字的机会。 :)
  • @Austin:考虑将很多工作封装在单个基类中以减少冗余,那么当我要在基类中记录某些内容时,该怎么做?

标签: c# reflection inheritance


【解决方案1】:

获取当前对象的类型,然后是其名称。

this.GetType().Name

【讨论】:

  • 对于基类,您可以使用:this.GetType().BaseType.Name
  • 它似乎不适用于部分类。您会在类名称之后添加一个 GUID 类型编号。
【解决方案2】:

试试这个:

Type type = this.GetType().UnderlyingSystemType;  
String className = type.Name;  

【讨论】:

  • 欢迎来到 Stack Overflow!感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion。另请注意,每次链接到自己的网站/产品时,都要求发布免责声明。
  • 感谢安德鲁让我知道。 :) 我的博客网站只是我的个人笔记,因为我往往会忘记一些事情.. 与促销或获得用户点击无关。甚至不担心是否有人会查看或评论它。会注意规则。非常感谢! :)
【解决方案3】:

如果您调用this.GetType(),您将始终获得当前运行时类型,无论您从哪个基类继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2011-02-20
    • 2019-03-29
    • 2012-03-23
    • 2015-04-08
    相关资源
    最近更新 更多