如何从基类中查找子类名?

Xaq*_*ron 58 c# reflection inheritance

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

tva*_*son 98

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

this.GetType().Name
Run Code Online (Sandbox Code Playgroud)

  • 对于基类,您可以使用:`this.GetType().BaseType.Name` (6认同)
  • 它似乎不适用于部分类。您会在类名称后添加一个 GUID 类型编号。 (2认同)

BFr*_*ree 8

如果你打电话给this.GetType()你,你将始终获得当前的运行时类型,而不管你继承的基类.


mar*_*rkg 8

试试这个:

Type type = this.GetType().UnderlyingSystemType;  
String className = type.Name;  
Run Code Online (Sandbox Code Playgroud)

此链接上的详细示例:

http://blogs.markglibres.com/2010/11/c-retrieve-class-name-of-child.html

  • 欢迎来到Stack Overflow!谢谢你发布你的答案!请务必仔细阅读[自我推广常见问题解答](http://stackoverflow.com/faq#promotion).另请注意,每次链接到您自己的网站/产品时,您都要*免费发布免责声明. (6认同)
  • 谢谢安德鲁让我知道.:)我的博客网站虽然只是我的个人笔记,因为我倾向于忘记事情......没有关于促销或获得用户点击.甚至不担心有人会查看或评论它.会注意到这些规则.非常感谢!:) (4认同)