找回密码
 立即注册
查看: 2540|回复: 20

[学术/精华文章] C# 请问反射的主要作用是什么?

[复制链接]
发表于 2018-9-6 16:04 | 显示全部楼层 |阅读模式
反射这东西相当复杂,十本书都难以介绍完。给你一个简单例子吧。
比如有一个猫类:
public class Cat
{
public int Age { get; set; }
public string Name { get; set; }
//假设它的属性还有很多很多
}
现在问题是:我NEW一个猫叫"小猫1",我想复制这一个对象,“小猫2”,那该怎么处理呢?
像下面这样吗:
Cat c1 = new Cat() { Age=20,Name="小猫1" };
Cat c2=c1;
那这样肯定是错的。因为c1和c2都引用的是同一个对象“小猫1”,那我现在想复制一个跟小猫1一模一样的对象怎么处理呢?这里就用到了反射:
方法:
protected void Page_Load(object sender, EventArgs e)
{

Cat c1 = new Cat() { Age=20,Name="小猫" };
Type type = typeof(Cat);
Cat c2 = new Cat();
foreach (System.Reflection.PropertyInfo info in type.GetProperties())
{

info.SetValue(c2, info.GetValue(c1, null), null);
}
Label1.Text = c2.Name;
Label2.Text = c2.Age.ToString();
}
不要告诉我你看不懂....
发表于 2018-9-16 21:35 | 显示全部楼层
很不错
发表于 2018-9-16 21:39 | 显示全部楼层
好帖就是要顶
发表于 2018-9-16 21:35 | 显示全部楼层
很好哦
发表于 2018-9-16 21:00 | 显示全部楼层
不错不错
发表于 2018-9-16 21:30 | 显示全部楼层
LZ真是人才
发表于 2019-3-4 07:50 | 显示全部楼层
很不错
发表于 2019-3-4 07:55 | 显示全部楼层
楼主是超人
发表于 2019-3-4 08:12 | 显示全部楼层
顶顶多好
发表于 2019-3-4 07:54 | 显示全部楼层
真心顶
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 13:22 , Processed in 0.160712 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表