首页 新闻 会员 周边

C#中 映射和反射 是不是一回事? 如果不是一回事,那么两者有什么区别呢,请举例说明,最好简单易懂

1
悬赏园豆:10 [已解决问题] 解决于 2015-10-26 17:07

如题,简单易懂,本人层次不高,  谢谢大神  膜拜大神啊

何其菜的主页 何其菜 | 初学一级 | 园豆:173
提问于:2015-09-28 10:52
< >
分享
最佳答案
2

 

映射只是一种概念,通常是用代码方式来表示一个比较复杂的意义。例如访问网站时404错误的含义是“找不到当前页”,500错误是“服务器内部错误”。那么我们会把这些错误的原因和一些固定的数字对应起来,这就是一种映射。那么体现在程序里,映射用的比较多的地方就是和数据库打交道。我们通常会期望不直接操作数据库而对数据库做出一些改变。那么我们会声明一个类去对应数据库的一张数据表。例如有一张学生表,有学号和姓名两个字段。我们可以在代码里建一个学生类,下面有学号和姓名两个属性,通过一定的技术可以把这个类和那张学生表对应起来,可以实现在操作这个类的时候,却去改变那张表的数据的效果,我们可以称这是一种映射。

反射是一种技术,很多高级语言都有这种技术。具体作用就是通过一个独立存在的对象,可以找到该对象的其他信息,例如该对象是由哪个类实例化而成的。打个比方,有一条狗和一个人,我们通过反射技术,可以得知:这条狗是“狼”科的,这个人是“灵长”类的。(生物知识丢了,可能不太恰当)。那么"狼"和"灵长"这两个词就是我们通过反射所得到的信息,往往很有用。

这两个词语不是一个层面的东西。

 

收获园豆:5
nicky0227 | 小虾三级 |园豆:1069 | 2015-09-29 15:58

太赞了

微光、 | 园豆:200 (初学一级) | 2022-07-13 14:26
其他回答(4)
0

映射 是mapping

反射 是reflect

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-09-28 11:00
-2

没听过C#中有映射这一说.

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2015-09-28 11:00
0

反射,你听过B超(全名是超声探测仪)吧,它是通过把超声波发出去,然后超声波 碰到物体后再返回来,然后 仪器根据返回来的声波进行 时间段和方位的分析 然后绘制出图象的。

 

其实,在C#中,别人写好的一个对象,我们想知道它的信息,我们也是通过 类似探测,发射超声波反射的方式来获取它的信息(比喻的,不要当真,C#有自己获取对象信息的一套方式)的。

映射呢?你拿一个镜子,镜子 里面有你的映像,这个镜子里的映像信息和你本身的信息是一模一样的(为什么身份证要用拍照的方式,还有现在正在发展的图象,人脸识别),我们可以通过分析这个映像 来还原你自己的信息。

在C#中 表现为,将现实中的数据,映射成数据库里的数据,用实体类来映射 你采集到的数据,用XML来表示 数据的信息等等等等。

收获园豆:3
需要格局 | 园豆:2145 (老鸟四级) | 2015-09-28 12:17
0

映射A-->B

反射A,可以获取A.ID,A.C()属性和方法等信息

JackWang-CUMT | 园豆:2866 (老鸟四级) | 2015-09-28 16:08

形象啊

支持(1) 反对(0) 侃夫 | 园豆:200 (初学一级) | 2017-03-31 15:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册