c# now格式 - “DateTime?”在C#中意味着什么?




3 Answers

由于DateTimestruct而不是class ,因此在声明该类型的字段或变量时,将获得DateTime 对象 ,而不是引用 。 并且,与int不能为null方式相同,此DateTime对象也不能为null,因为它不是引用。

添加问号会将其转换为可空类型 ,这意味着它既可以是DateTime对象, 可以为null

DateTime?Nullable<DateTime>语法糖,其中Nullable本身就是一个struct

datetime使用 c#时间类

我正在阅读.Net书籍,在其中一个代码示例中,有一个带有此字段的类定义:

private DateTime? startdate

DateTime? 意思?




一个 作为值类型的后缀允许空值分配,这是不可能的。

http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx

表示一个对象,其基础类型是值类型,也可以为其指定空引用。

这意味着您可以编写如下内容:

    DateTime? a = null;
    if (!a.HasValue)
    {
        a = DateTime.Now;
        if (a.HasValue)
        {
            Console.WriteLine(a.Value);
        }
    }

约会时间? 在语法上等同于Nullable <DateTime>




它基本上为你提供了原语的额外状态。 它可以是值,也可以为null。 在不需要分配值的情况下,它可能很有用。 因此,不是使用例如datetime.min或max,而是将其赋值为null以表示无值。




Related

c# .net datetime syntax nullable