一段代码的优化过程
2011-05-30 16:24
204 查看
自己写了一段判断,需求是:
如果 dataIn.Zznjh以"0"开头,则dataIn.Zzdqspid取其前6位;
如果 dataIn.Zznjh以非"0"开头,则dataIn.Zzdqspid取其前7位;
但是,SD嫌代码过长,所以做了一系列的优化;
以下是我最初的版本:
//如果内机条码不为空,则判断内机条码是否以0开头;
//以0开头,取前6位;非0开头取前七位
if (dataIn.Zznjh != string.Empty)
{
if (dataIn.Zznjh.Substring(0, 1) == "0" && dataIn.Zznjh.Length < 6)
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
if (dataIn.Zznjh.Substring(0, 1) != "0" && dataIn.Zznjh.Length < 7)
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机号不能为空!";
dataJy.Zb2bJyCode = "M0020";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
//当商品id为6位的时候,内机条码必须要大于6位
if (dataIn.Zzdqspid.Length == 6)
{
if (dataIn.Zznjh.Length >= 6)
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 6))
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
//当商品id为7位的时候,内机条码必须大于七位
else if (dataIn.Zzdqspid.Length == 7)
{
if (dataIn.Zznjh.Length >= 7)
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 7))
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "商品ID不合格!";
dataJy.Zb2bJyCode = "M0032";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
优化一:
以下是同事的优化,但个人觉得虽然代码量减少了,但可读性略微逊色些的!(纯属个人见解)
if (dataIn.Zznjh != string.Empty)
{
if (dataIn.Zzdqspid.Length != 6 || dataIn.Zzdqspid.Length != 7)
{
dataJy.Zb2bJyDis = "商品ID不合格!";
dataJy.Zb2bJyCode = "M0032";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
else
{
if ((dataIn.Zznjh.Substring(0, 1) == "0" && dataIn.Zznjh.Length < 6) || (dataIn.Zznjh.Substring(0, 1) != "0" && dataIn.Zznjh.Length < 7))
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
else if (dataIn.Zznjh.Substring(0, 1) == "0")
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 6))
{
dataJy.Zb2bJyDis = "内机条码的前6位 为必须是商品ID!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 7))
{
dataJy.Zb2bJyDis = "内机条码的前7位为必须是商品ID!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
}
}
else
{
dataJy.Zb2bJyDis = "内机号不能为空!";
dataJy.Zb2bJyCode = "M0020";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
优化二:
最终优化为:
if (dataIn.Zznjh != "" && dataIn.Zznjh.Substring(0, 1) == "0")
{
if (dataIn.Zzdqspid.Length != 6 || dataIn.Zznjh.Length < 6 || dataIn.Zznjh.Substring(0, 6) != dataIn.Zzdqspid)
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else if (dataIn.Zznjh != "" && dataIn.Zznjh.Substring(0, 1) != "0")
{
if (dataIn.Zzdqspid.Length != 7 || dataIn.Zznjh.Length < 7 || dataIn.Zznjh.Substring(0, 7) != dataIn.Zzdqspid)
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
如果 dataIn.Zznjh以"0"开头,则dataIn.Zzdqspid取其前6位;
如果 dataIn.Zznjh以非"0"开头,则dataIn.Zzdqspid取其前7位;
但是,SD嫌代码过长,所以做了一系列的优化;
以下是我最初的版本:
//如果内机条码不为空,则判断内机条码是否以0开头;
//以0开头,取前6位;非0开头取前七位
if (dataIn.Zznjh != string.Empty)
{
if (dataIn.Zznjh.Substring(0, 1) == "0" && dataIn.Zznjh.Length < 6)
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
if (dataIn.Zznjh.Substring(0, 1) != "0" && dataIn.Zznjh.Length < 7)
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机号不能为空!";
dataJy.Zb2bJyCode = "M0020";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
//当商品id为6位的时候,内机条码必须要大于6位
if (dataIn.Zzdqspid.Length == 6)
{
if (dataIn.Zznjh.Length >= 6)
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 6))
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
//当商品id为7位的时候,内机条码必须大于七位
else if (dataIn.Zzdqspid.Length == 7)
{
if (dataIn.Zznjh.Length >= 7)
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 7))
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "商品ID不合格!";
dataJy.Zb2bJyCode = "M0032";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
优化一:
以下是同事的优化,但个人觉得虽然代码量减少了,但可读性略微逊色些的!(纯属个人见解)
if (dataIn.Zznjh != string.Empty)
{
if (dataIn.Zzdqspid.Length != 6 || dataIn.Zzdqspid.Length != 7)
{
dataJy.Zb2bJyDis = "商品ID不合格!";
dataJy.Zb2bJyCode = "M0032";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
else
{
if ((dataIn.Zznjh.Substring(0, 1) == "0" && dataIn.Zznjh.Length < 6) || (dataIn.Zznjh.Substring(0, 1) != "0" && dataIn.Zznjh.Length < 7))
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0015";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
else if (dataIn.Zznjh.Substring(0, 1) == "0")
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 6))
{
dataJy.Zb2bJyDis = "内机条码的前6位 为必须是商品ID!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
if (dataIn.Zzdqspid != dataIn.Zznjh.Substring(0, 7))
{
dataJy.Zb2bJyDis = "内机条码的前7位为必须是商品ID!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
}
}
else
{
dataJy.Zb2bJyDis = "内机号不能为空!";
dataJy.Zb2bJyCode = "M0020";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
优化二:
最终优化为:
if (dataIn.Zznjh != "" && dataIn.Zznjh.Substring(0, 1) == "0")
{
if (dataIn.Zzdqspid.Length != 6 || dataIn.Zznjh.Length < 6 || dataIn.Zznjh.Substring(0, 6) != dataIn.Zzdqspid)
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else if (dataIn.Zznjh != "" && dataIn.Zznjh.Substring(0, 1) != "0")
{
if (dataIn.Zzdqspid.Length != 7 || dataIn.Zznjh.Length < 7 || dataIn.Zznjh.Substring(0, 7) != dataIn.Zzdqspid)
{
dataJy.Zb2bJyDis = "内机条码和商品ID不匹配!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
}
else
{
dataJy.Zb2bJyDis = "内机条码格式错误!";
dataJy.Zb2bJyCode = "M0014";
JyEntity(dataJy.Zb2bJyDis, dataJy.Zb2bJyCode);
}
相关文章推荐
- 微信公众号网页授权代码优化过程(二)
- 一段阻塞队列代码的纠错与优化
- 由一段代码谈前端js优化和编码规范(一) 分类: JavaScript 2015-03-21 12:43 668人阅读 评论(1) 收藏
- 使用XPO过程中的代码优化
- SDK程序员经常写出的一段低效率代码[代码优化][原]
- Windows Xp 优化文件 的一段BAT代码
- 由一段代码谈前端js优化和编码规范(一)
- 一段代码解析JAVA父类子类构造过程
- dfs递归过程代码优化
- 代码的优化过程: 生成括号 Generate Parentheses
- 一段代码的测试过程记录
- 由一段代码谈前端js优化和编码规范(一)
- 代码编写过程中应该考虑的时序优化(笔记)
- 一段代码编译成C#内存程序的过程
- (转)Java 代码优化过程的实例介绍
- 一段java代码加载分析认识加载过程
- Java 代码优化过程的实例介绍
- 用正则分析一段vb代码含有哪些过程或者函数
- 软件开发者面试百问-----描述一下实现一段代码的过程,从需求到最终交付
- 不让编译器优化一段代码