zoukankan      html  css  js  c++  java
  • 一次没想好,第二次就要想到做好

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

     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方法。

  • 相关阅读:
    腾讯微博
    城市左右选择添加按钮案例
    jQuery元素操作1
    动态创建表格
    五角星评论案例
    点击图片箭头回到顶部案例
    HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
    HDU1165: Eddy's research II(递推)
    HDU1158:Employment Planning(线性dp)
    HDU1081:To The Max(最大子矩阵,线性DP)
  • 原文地址:https://www.cnblogs.com/insus/p/2820597.html
Copyright © 2011-2022 走看看