新手请教:有谁能讲一下什么是反射机制?能给个例子吗?

dycsdn 2003-07-31 10:11:21
有谁能讲一下什么是反射机制?能给个例子吗?
先在此谢过!!
...全文
62 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zapjx 2003-08-01
  • 打赏
  • 举报
回复
microsoft有详细解释
covis 2003-08-01
  • 打赏
  • 举报
回复
你用反射做关键字在本论坛搜,可以的到一些解释和使用方法。
Elsa_Fent 2003-08-01
  • 打赏
  • 举报
回复
反射是指在运行时获取程序集、类、函数的信息,目前我只知道JAVA和.Net支持这样的功能,这就解释了为什么.Net组件不用注册的疑问,因为它能在运行时获取程序集、类、函数的信息,比如给你一个.Net写的DLL,你就能用反射机制知道它里面有些什么类,该类有什么成员方法(包括参数)、属性,甚至私有函数。
这比COM先进的是不用读注册表,且COM的方法和属性难以分清楚,都是公有函数的形式,私有函数更不用提了。
在实际使用中用处太大了,可以说带来一种新式的编程方式,比如说:有一张表有三个字段,A,B,C,写一个类(CTable)访问此表,该类有三个属性对应于三个字段(CTable.A, CTable.B, CTable.C),此类作为中间层,客户端使用此中间层时可以这样,运用反射机制一次循环读出这三个属性,客户端可以知道属性名(A,B,C)属性个数及类型,据此构造一个DBGrid,表头就用属性名ABC,一切都是自动的,你无须事先知道数据库的表中有多少字段,字段名是什么,也不必知道那个类的属性有多少。
更妙的是,当你的表需要增加一个字段时,你只要在类中添加一个属性即可,客户端程序不必作任何修改,DBGrid会自动把新字段显示出来,多么精妙!
试想如果没有反射,你事必要从头改到脚:改数据库之后改中间层,如果是COM还再注册一次,再改客户端,岂不把人烦死?
lsqlxq 2003-07-31
  • 打赏
  • 举报
回复
有点点印象 好象听说过:
利用Attribute可以给类附加一些信息,但取出这些信息,这是通过.NET的反射来实现的


可能你比我还懂:当帮你顶一下 :)
wolve 2003-07-31
  • 打赏
  • 举报
回复
反映提供运行时生成,调用类的方法。
framework下的sample中有相关的例子。
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-07-31 10:11
社区公告

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