怎样简化这段代码,是不是要用到反射什么的,有图请进
本帖最后由 aierda 于 2013-10-30 15:59:45 编辑
如图所示,怎样简化这段代码,把switch里面的代码用一句代码来表示.比如:
orderDetailModel.转化成对象的方法F("Size"+i.ToString()) = decimal.Parse(row["Size" + i.ToString()].ToString());
这样我就不需要要重复写那么多的代码了.
求各位指点,谢谢!~~
------解决方案--------------------可以用反射,根据属性名字去赋值
------解决方案-------------------- T rc = new T();
for (int i = 0; i < typeof(T).GetProperties().Count(); i++)
{
typeof(T).GetProperty("Size" + i).SetValue(rc, i, null);
}
------解决方案-------------------- orderDetailModel odm= new orderDetailModel ();
Type t = typeof(orderDetailModel);
for (int i = 0; i < t.GetProperties().Length; i++)
{
t.GetProperty("Size"+i).SetValue(odm,decimal.Parse(row["Size"+i].ToString()), null);
}
------解决方案--------------------http://msdn.microsoft.com/zh-cn/library/kz0a8sxy