资源大湿 发表于 2018-9-6 16:04

C# 请问反射的主要作用是什么?

反射这东西相当复杂,十本书都难以介绍完。给你一个简单例子吧。
比如有一个猫类:
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();
}
不要告诉我你看不懂....

cheryl 发表于 2018-9-16 21:35

很不错

DamonYang 发表于 2018-9-16 21:39

好帖就是要顶

caihuanqing 发表于 2018-9-16 21:35

很好哦

cheryl 发表于 2018-9-16 21:00

不错不错

zai771 发表于 2018-9-16 21:30

LZ真是人才

shengruqing 发表于 2019-3-4 07:50

很不错

oiopoo 发表于 2019-3-4 07:55

楼主是超人

xiaomuxiaoxiao 发表于 2019-3-4 08:12

顶顶多好

hjjss 发表于 2019-3-4 07:54

真心顶
页: [1] 2 3
查看完整版本: C# 请问反射的主要作用是什么?