继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

一次没想好,第二次就要想到做好

慕田峪9129951
关注TA
已关注
手记 337
粉丝 200
获赞 993

下面一段程序,功能是每天定时发送邮件,星期天不执行动作。

复制代码

 1  int actionHour = 08; 2  int currentYear = e.SignalTime.Year; 3  int currentMonth = e.SignalTime.Month; 4  int currentDay = e.SignalTime.Day; 5  int currentHour = e.SignalTime.Hour; 6  7  var ci = new CultureInfo("en-US"); 8  DateTime dt = new DateTime(currentYear, currentMonth, currentDay); 9  string wn = ci.DateTimeFormat.DayNames[(int)dt.DayOfWeek].ToString();10 11  if (wn.CompareTo("Sunday") != 0 && currentHour == actionHour)12  { 13   //发送邮件14  }

复制代码

某一天客户说,星期六也不用发送邮件。接到客户要求,对程序时行修改。

1 if ((wn.CompareTo("Sunday") != 0 || wn.CompareTo("Saturday") != 0) && currentHour == actionHour)2 { 3  //发送邮件4 }


上面的哪个星期不发送,哪个星期发送,就是变数,第一次在开发时,也许想不起有这变数,第二次客户有这要求,就会想这是一个变数。

因此需要把这个星期列入一个阵列内。

复制代码

 1  string[] w = { "Sunday","Saturday"};  //客户要求这些变量,就更改此。 2  3  foreach (string s in w) 4  { 5      if (wn.CompareTo(s) != 0 && currentHour == actionHour) 6      {  7        ////发送邮件 8      } 9      break;10  }

复制代码

写到这里,Insus.NET看到上面行3至9的语法,它们是可以改为更可读性的代码:

1  if (!((IList)w).Contains(wn) && currentHour == actionHour)2 { 3  //发送邮件4 }

上面行1的代码,是把阵列转为IList对象,并使用Contains方法。

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP