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