C# Calendar控件初始化后显示选中日期的代码优化问询
简化Calendar控件VisibleDate设置的方法
嘿,作为C#新手能想到优化代码这点超棒!当然可以合并最后那两行重复的代码啦,这里有两种实用的方式:
方法一:封装成辅助方法
如果以后你可能还要给其他Calendar控件做同样的设置,把逻辑封装成一个小方法会更方便维护:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { previousCalendar.SelectedDate = DateTime.Now.Date; newCalendar.SelectedDate = DateTime.Now.Date.AddDays(14); endCalendar.SelectedDate = DateTime.Now.Date.AddDays(21); // 调用辅助方法设置VisibleDate SetCalendarVisibleDate(newCalendar); SetCalendarVisibleDate(endCalendar); } } // 新增的辅助方法 private void SetCalendarVisibleDate(Calendar calendar) { if (calendar != null) // 加个空判断更稳妥 { calendar.VisibleDate = calendar.SelectedDate; } }
方法二:遍历控件集合
如果只是一次性处理这两个控件,用数组或列表把它们装起来遍历就行,代码更紧凑:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { previousCalendar.SelectedDate = DateTime.Now.Date; newCalendar.SelectedDate = DateTime.Now.Date.AddDays(14); endCalendar.SelectedDate = DateTime.Now.Date.AddDays(21); // 把需要设置的控件放入集合,遍历赋值 foreach (var calendar in new[] { newCalendar, endCalendar }) { calendar.VisibleDate = calendar.SelectedDate; } } }
两种方法都能达到和原来两行代码一样的效果,而且以后再添加需要相同设置的Calendar控件时,只需要在方法调用里加一行,或者在集合里加一个控件就行,不用重复写相同的赋值语句,代码的可维护性也提升了~
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

