如何从父类获取子类的类型Type

csShooter 2007-08-13 01:04:50
class a
{
a()
{
Type type = ...//子类的Type
}
}
class b: a
{
}

class demo()
{
static int Main()
{

}
}

-----------------------------------------
当然不能使用:
Type type = typeof(B);
因为我写a不知道会有b存在..
...全文
1312 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
smileofdream2 2011-09-23
  • 打赏
  • 举报
回复
受教了
阿亮 2007-08-14
  • 打赏
  • 举报
回复
.
conannb 2007-08-14
  • 打赏
  • 举报
回复
学习
Ivony 2007-08-13
  • 打赏
  • 举报
回复
楼主是非常有才的……

总是能想别人之所不能想,看别人之所不能看。
csShooter 2007-08-13
  • 打赏
  • 举报
回复
感谢viena教导!
viena 2007-08-13
  • 打赏
  • 举报
回复
基本概念需要补一补~
viena 2007-08-13
  • 打赏
  • 举报
回复
楼主太有才了 #-_*~
csShooter 2007-08-13
  • 打赏
  • 举报
回复
class a
{
private Type type;
a()
{

}
protected virtual void GetChildrenFields()
{
type = this.GetType(); //搞定,读出来的就是子类的类型
FieldInfo[] fields = type.GetFields();
....
}
}
class b: a
{

}
csShooter 2007-08-13
  • 打赏
  • 举报
回复


wush007 你太有才了!

兄弟,感谢感谢!!
阿亮 2007-08-13
  • 打赏
  • 举报
回复
通过一个可以覆盖的方法,this.GetyType()就可以实现你想要的效果。
kelong18433 2007-08-13
  • 打赏
  • 举报
回复
太有才了,呵呵
Ivony 2007-08-13
  • 打赏
  • 举报
回复
GetType()
csShooter 2007-08-13
  • 打赏
  • 举报
回复

但每次都要在子类里写相同的代码总是不爽!
class a
{
protected Type type;
a()
{

}
private void GetChildrenFields()
{
FieldInfo[] fields = type.GetFields();
....
}
}
class b: a
{
type = this.GetType(); // 这段代码每个子类都得写
}
shilei831115 2007-08-13
  • 打赏
  • 举报
回复
好多星星 留名
viena 2007-08-13
  • 打赏
  • 举报
回复
是的,不通~
csShooter 2007-08-13
  • 打赏
  • 举报
回复
感谢!

<<<viena>>>,<<<Jinglecat>>>


------------------------
那就是说,此路不通?
viena 2007-08-13
  • 打赏
  • 举报
回复
如果你有确定的程序集,可以用反射得到其中的某个类的信息
但这与子类什么的一点关系也没有~
Jinglecat 2007-08-13
  • 打赏
  • 举报
回复
在继承路径上,基类完全意识不到子类的行为

假如 b 是你系统内预定义的类,你自然可以

a()
{
Type type = typeof(b);
}

否则应该考虑多态
viena 2007-08-13
  • 打赏
  • 举报
回复
//其实是想使用反射获取子类的字段
明白反射的含义吗?反射是从程序集中得到类型的信息

而子类可能一个都没有,也可能有无限多个;
可以分布在任意的程序集,任意的命名空间中
任何人只要乐意就可以写一个某个类的子类
这样说你明白了吗?
viena 2007-08-13
  • 打赏
  • 举报
回复
//因为我写a不知道会有b存在
狂晕,你自己都知道你在做一个荒唐的事情!
加载更多回复(1)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧