+ -
当前位置:首页 → 问答吧 → 学习:以下代码如何优化???

学习:以下代码如何优化???

时间:2011-12-27

来源:互联网

C# code
OnlineUser ou = GetOnlineUser();
        if (ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString() == string.Empty & _ds.Tables[0].Rows.Count > 0)
        {
            string strZT;
            strZT = _ds.Tables[0].Rows[0][4].ToString() + _ds.Tables[0].Rows[0][7].ToString() + _ds.Tables[0].Rows[0][8].ToString();
            for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
            {
                strZT = strZT + "" + _ds.Tables[0].Rows[i][4].ToString() + _ds.Tables[0].Rows[i][7].ToString() + _ds.Tables[0].Rows[i][8].ToString();
                if (i == 2 & _ds.Tables[0].Rows.Count>3)
                {
                    strZT = strZT + "...";
                    break;
                }
            }
            ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
            DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
            MailMessage.Instance.UpdateContent(ou.Guid);
        }       

作者: mzwww   发布时间: 2011-12-27

抛砖引玉了先C# code
OnlineUser ou = GetOnlineUser();
if (ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString() == string.Empty &
        _ds.Tables[0].Rows.Count > 0)
{
    StringBuilder strZT = new StringBuilder(_ds.Tables[0].Rows[0][4].ToString() + 
        _ds.Tables[0].Rows[0][7].ToString() + 
        _ds.Tables[0].Rows[0][8].ToString());
        
    for (int count = 1; count < _ds.Tables[0].Rows.Count; count++)
    {
        strZT.Append("" + _ds.Tables[0].Rows[count][4].ToString() + 
            _ds.Tables[0].Rows[count][7].ToString() + 
            _ds.Tables[0].Rows[count][8].ToString());
            
        if (count == 2 & _ds.Tables[0].Rows.Count>3)
        {
            strZT.Append("...");
            break;
        }
    }
    
    ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT.ToString();
    DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
    MailMessage.Instance.UpdateContent(ou.Guid);
}    

另外替换掉那些魔术数字
_ds.Tables[0].Rows[0][7].ToString() + 
_ds.Tables[0].Rows[0][8].ToString());
7和8这些都是代表什么意思的?替换为静态不可变的 int,让维护的人员明白是什么意思.
清楚,干净的代码是最好的.

作者: wushuai1346   发布时间: 2011-12-27

public void UpdataZT()
  {
  OnlineUser ou = GetOnlineUser();
  string strDelailZT = ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString();
  if (strDelailZT == string.Empty & _ds.Tables[0].Rows.Count > 0)
  {
  string strZT;
  DataRow dr = _ds.Tables[0].Rows[0];
  strZT = dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
  for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
  {
  dr = _ds.Tables[0].Rows[i];
  strZT = strZT + "、" + dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
  if (i == 2 & _ds.Tables[0].Rows.Count > 3)
  {
  strZT = strZT + "...";
  break;
  }
  }
  ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
  DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
  MailMessage.Instance.UpdateContent(ou.Guid);
  }
  }

作者: mzwww   发布时间: 2011-12-27

C# code
OnlineUser ou = GetOnlineUser();
  string strDelailZT = ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString();
  if (strDelailZT == string.Empty & _ds.Tables[0].Rows.Count > 0)
  {
  string strZT;
  DataRow dr = _ds.Tables[0].Rows[0];
  strZT = dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
  for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
  {
  dr = _ds.Tables[0].Rows[i];
  strZT = strZT + "" + dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
  if (i == 2 & _ds.Tables[0].Rows.Count > 3)
  {
  strZT = strZT + "...";
  break;
  }
  }
  ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
  DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
  MailMessage.Instance.UpdateContent(ou.Guid);
  }

作者: mzwww   发布时间: 2011-12-27