繁体   English   中英

如何检查DateTime是否为null

[英]How to check if DateTime is null

我有两个DateTime如下:

        DateTime startDate = CalendarFrom.SelectedDate;
        DateTime endDate = CalendarTo.SelectedDate;

现在,我想检查是否选择了startDateendDate 据我所知,我们不能将null赋给DateTime所以我这样写:

       if (startDate == DateTime.MinValue && endDate == DateTime.MinValue)
       {
             // actions here
       }

但是我意识到对于endDate ,它不是“1/1/0001 12:00:00 AM”,因此无法使用DateTime.MinValue进行检查。

我想知道如何检查endDate 谢谢!

DateTime本身不能为null - 使用DateTime?最干净DateTime? 又名为Nullable<DateTime>来表示可空值。

目前还不清楚CalendarFromCalendarTo是什么,但它们可能不支持Nullable<DateTime> - 但最好将转换集中在这里,这样你可以在任何地方使用Nullable<DateTime> 不是你直接使用CalendarFromCalendarTo

DateTime是一个结构,所以它永远不能为null。

我可以想到两个选择:

  1. 如果你真的想支持null,请使用DateTime? 创建一个可以为空的DateTime。

  2. 或者,您的应用程序可能只需将DateTime值设置为默认值,该值表示未设置实际值。 对于此默认值,您可以使用default(DateTime)或类似DateTime.MinValue

我不确定你的CalenderFrom和CalenderTo是什么; 但我假设他们是静态的classess。 基于这个假设,我就是这样编写代码的。

public static class CalendarFrom
{
    public static DateTime SelectedFrom { get; set; }
}

public static class CalendarTo
{
    public static DateTime SelectedDate { get; set; }
}

DateTime? startDate = CalendarFrom.SelectedFrom;
            DateTime? endDate = CalendarTo.SelectedDate;

            if (startDate.HasValue 
                && ( startDate.Value != DateTime.MaxValue || startDate.Value != DateTime.MinValue))
            {
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM