怎样才能写出尽可能让编译器找出潜在错误的代码?

  这个疑问是我在进行以往一段代码的重构时碰到的。通过这次重构,代码对非法数据的兼容性和安全性提高了,但在编写的时候似乎更容易出错,而且这些错误是编译器无法帮助发现的。大家对比下面的代码段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的标红部分都是非常可能出拼写错误的地方。参考我上一篇随笔中对重构的描述,不知各位大牛能不能提出一些好的重构建议,让我的代码能尽量少的出现这种“编译盲区”呢?

转载于:https://www.cnblogs.com/xingyukun/archive/2007/07/05/806784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值