求救!! --[反射]

Oo_o_oO 2012-03-28 11:54:34
现在学到反射, 一头雾水啊!
有人说:
可以copy 对象,
可以找到dll 类中隐藏的方法与属性。
不知怎么理解。
下面是用反射做的copy 对象;---求解


//--猫类
public class Cat
{
public int Age { get; set; }
public string Name { get; set; }
//假设它的属性还有很多很多
}
//--测式Copy
private void button3_Click(object sender, EventArgs e)
{
Cat c1 = new Cat() { Age = 20, Name = "小猫" };
Type type = typeof(Cat);
Cat c2 = new Cat();
//---下面这段的foreach 是什么意思?它做了什么?
foreach (PropertyInfo info in type.GetProperties())
{
info.SetValue(c2, info.GetValue(c1, null), null);
}
labName.Text = c2.Name;
labAge.Text = c2.Age.ToString();
}
...全文
162 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bidisty 2012-03-28
  • 打赏
  • 举报
回复
让你不知道程序集里内容的时候来使用程序集
macooidle 2012-03-28
  • 打赏
  • 举报
回复
就是让你把string变成class~
Oo_o_oO 2012-03-28
  • 打赏
  • 举报
回复
回一楼:
不是用不用反射问题,
而是我完全不会用反射,不懂什么是反射,反射有什么作用.
cheng2005 2012-03-28
  • 打赏
  • 举报
回复
只说一句,如无必要,请不要使用反射,反射使用的越多,说明你的结构设计的越不合理。
hetengfei_ 2012-03-28
  • 打赏
  • 举报
回复
楼主你分析这个代码。
Cat c1 = new Cat() { Age = 20, Name = "小猫" };
Type type = typeof(Cat);
StringBuilder sb = new StringBuilder();
foreach (PropertyInfo info in type.GetProperties())
{
sb.Append(info.Name+"\t"+info.GetValue(c1, null).ToString()+"\r\n");
}
MessageBox.Show(sb.ToString(),"提示");
bdmh 2012-03-28
  • 打赏
  • 举报
回复
Type type = typeof(Cat);
//上面去的Cat类的Type类型
GetProperties取得里面所有的属性,然后遍历,为每个属性赋值
foreach (PropertyInfo info in type.GetProperties())
{
info.SetValue(c2, info.GetValue(c1, null), null);
}
帮助是你最好的老师,一定要看

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧