当前位置:编程学习 > C#/ASP.NET >>

代码重构处理

   parameters[0].Value = model.a;
            parameters[1].Value = model.b;
            parameters[2].Value = model.d;
            parameters[3].Value = model.e;
            parameters[4].Value = model.f;
            parameters[5].Value = model.g;
            parameters[6].Value = model.h;
            parameters[7].Value = model.u;
            parameters[8].Value = model.i;
            parameters[9].Value = model.o;
            parameters[10].Value = model.p;
            parameters[11].Value = model.l;
            parameters[12].Value = model.c;
            parameters[13].Value = model.x;

我跟的项目里有很多地方以前是这样的代码.有时候中间会删掉一个.就不连续了.
我想换成这样的形式.
int i=-1;
   parameters[i++].Value = model.a;
            parameters[i++].Value = model.b;
            parameters[i++].Value = model.d;
            parameters[i++].Value = model.e;
            parameters[i++].Value = model.f;

我也想过用for循环.但要取model的成员组就更麻烦了.还是照原来的代码改成i++好了.请大神指教. --------------------编程问答-------------------- 代码错误,把i赋值为0或者参数调用++i --------------------编程问答--------------------
引用 1 楼 mh_ma 的回复:
代码错误,把i赋值为0或者参数调用++i
对,应该是++i. --------------------编程问答--------------------         public SqlParameter[] SetValueParam(object objinfo)
        {
            Type type = objinfo.GetType();

            SqlParameter[] param = new SqlParameter[type.GetProperties().Length];
            int i = 0;
            foreach (PropertyInfo proper in type.GetProperties())
            {
                param[i]=new SqlParameter("@"+proper.Name,proper.GetValue(objinfo,null));
                i++;
            }
            return param;
        }
  mode model=new mode();
  model.a=xx;
  mode2.b=xx;
  SqlParameter[] sqlparqm=SetValueParam(model); --------------------编程问答--------------------
引用 3 楼 liuchaolin 的回复:
public SqlParameter[] SetValueParam(object objinfo)
        {
            Type type = objinfo.GetType();

            SqlParameter[] param = new SqlParameter[type.GetPropertie……

我想用[++i]的形式.因为有些成员比如ID.当前时间等字段是不用加SqlParameter的 --------------------编程问答--------------------
int i=0;
parameters[i++].Value = model.a;
parameters[i++].Value = model.b;
parameters[i++].Value = model.d;
parameters[i++].Value = model.e;
parameters[i++].Value = model.f;
--------------------编程问答--------------------
引用 5 楼 qiujialongjjj 的回复:
C# code?123456int i=0;parameters[i++].Value = model.a;parameters[i++].Value = model.b;parameters[i++].Value = model.d;parameters[i++].Value = model.e;parameters[i++].Value = model.f;
    ……
我想要字符处理.复制这个干什么. --------------------编程问答-------------------- 不要把它当成代码.把它当成字符来处理. --------------------编程问答-------------------- 用反射,自己写个DBFieldAttribute类作字段映射
加在model的字段上,用以说明Sql参数的名称,类型,及默认值
反射的时候,只处理那些加了DBFieldAttribute的字段

也可以用Net的Entity framework --------------------编程问答-------------------- 求正则高手出现
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,