zoukankan      html  css  js  c++  java
  • 怎样才能写出尽可能让编译器找出潜在错误的代码?

      这个疑问是我在进行以往一段代码的重构时碰到的。通过这次重构,代码对非法数据的兼容性和安全性提高了,但在编写的时候似乎更容易出错,而且这些错误是编译器无法帮助发现的。大家对比下面的代码段1和代码段2,代码段1是重构前的,代码段2是重构后的:

    ///代码段1,重构前
    public static void Add(int uVenderID, int dupUVenderID)
    {
     string cmd = "insert into UploadCheckResult values({0},{1})";
     cmd = string.Format(cmd, uVenderID, dupUVenderID);
     new GEA52SqlExe().ExecuteNonQuery(cmd);
    }

    ///代码段2,重构后
    public static void Add(int uVenderID, int dupUVenderID)
    {
     string cmd = "insert into UploadCheckResult values(@uVenderID, @dupUVenderID)";
     SqlParameter[] sqlParams = {
      new SqlParameter("@uVenderID", uVenderID),
      new SqlParameter("@dupUVenderID", dupUVenderID)
     };
     new GEA52SqlExe().ExecuteNonQuery(cmd, sqlParams);
    }

    可以看到,代码段1中基本上不会犯编译器无法检测出的错误,而代码段2的标红部分都是非常可能出拼写错误的地方。参考我上一篇随笔中对重构的描述,不知各位大牛能不能提出一些好的重构建议,让我的代码能尽量少的出现这种“编译盲区”呢?

  • 相关阅读:
    数据放在服务端和客户端的利与弊
    python异步I/O并发
    view
    mysql千万或者上亿的数据怎么设计数据库
    Django(一)
    JQuery
    BOM与DOM
    JavaScript
    CSS(二)
    CSS介绍
  • 原文地址:https://www.cnblogs.com/xingyukun/p/806784.html
Copyright © 2011-2022 走看看