日期:2014-05-17  浏览次数:21003 次

怎样简化这段代码,是不是要用到反射什么的,有图请进
本帖最后由 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