请问这样的代码还能优化么? 传进来的参数已经在上一级经过校验,所以可以确保参数是有效的!

我不会发光i 2017-08-31 10:49:31
        /// <summary>
/// 预览和生成编码
/// </summary>
/// <param name="year">年号</param>
/// <param name="nex">批次号</param>
/// <param name="ammunitionBox">弹药箱号</param>
/// <param name="ammunitionNum">弹药号</param>
/// <param name="length">打印次数/弹药数量</param>
private void preview(string year, string nex, int ammunitionBox, int ammunitionNum, int length)
{
string[] print = new string[length];


string Box="",Num="";
for (int i = 0; i < print.Length; i++)
{
if (i % ammunitionNum == 0)
{
ammunitionBox++;
}

//判断弹药箱号位数
switch (ammunitionBox.ToString().Length)
{
case 4: { Box = ammunitionBox.ToString(); } break;
case 3: { Box = "0" + ammunitionBox; } break;
case 2: { Box = "00" + ammunitionBox; } break;
case 1: { Box = "000" + ammunitionBox; } break;
}

//判断装弹数位数
switch (ammunitionNum.ToString().Length)
{
case 2: { Num = ammunitionNum.ToString(); } break;
case 1: { Num = "0" + ammunitionNum; } break;
}

if (Box != "" && Num != "")
{
print[i] = IdCount(year, nex, Box, Num);
}
else
{
if (Box == "" && Num == "")
{
MessageBox.Show("弹药箱号和装弹数量输入错误,请重新输入!");
}
else if (Box == "")
{
MessageBox.Show("弹药箱号输入错误,请重新输入!");
}
else if (Num == "")
{
MessageBox.Show("装弹数量输入错误,请重新输入!");
}
}

}


foreach (var item in print)
{
richTextBox1.AppendText(item + "\r\n");
}



string text = print[0];
if (text != "" && text.Length > 0)
{

this.pictureBox1.Image = Printpage(text);

}
else
{
MessageBox.Show("输入错误/内容为空");
}
}
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不会发光i 2017-08-31
  • 打赏
  • 举报
回复
 ////判断弹药箱号位数
                //switch (ammunitionBox.ToString().Length)
                //{
                //    case 4: { Box = ammunitionBox.ToString(); } break;
                //    case 3: { Box = "0" + ammunitionBox; } break;
                //    case 2: { Box = "00" + ammunitionBox; } break;
                //    case 1: { Box = "000" + ammunitionBox; } break;
                //}

                ////判断装弹数位数
                //switch (ammunitionNum.ToString().Length)
                //{
                //    case 2: { Num = ammunitionNum.ToString(); } break;
                //    case 1: { Num = "0" + ammunitionNum; } break;
                //}



                 Box = ammunitionBox.ToString().PadLeft(4,'0');

                 Num = ammunitionNum.ToString().PadLeft(2, '0');
我不会发光i 2017-08-31
  • 打赏
  • 举报
回复
引用 1 楼 qq_26433213 的回复:
字符串可能等于“”,应该也可能是null, 使用这个方法 string.IsNullOrWhiteSpace() 判空会比较好 你说的优化是指什么方面?性能?可读性?代码规范性?
我给俩个临时字符串初始值给的"",传入进来的参数也判断过了
我不会发光i 2017-08-31
  • 打赏
  • 举报
回复
引用 1 楼 qq_26433213 的回复:
字符串可能等于“”,应该也可能是null, 使用这个方法 string.IsNullOrWhiteSpace() 判空会比较好 你说的优化是指什么方面?性能?可读性?代码规范性?
我感觉写的有些繁琐,所以想写的简洁一点
花下泥 2017-08-31
  • 打赏
  • 举报
回复
字符串可能等于“”,应该也可能是null, 使用这个方法 string.IsNullOrWhiteSpace() 判空会比较好 你说的优化是指什么方面?性能?可读性?代码规范性?

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧