You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:22:53