什么是“日期时间?”在C#是什么意思?什么是“日期时间?”在C#是什么意思?(What does “

2019-05-17 15:42发布

我正在读一本书的.Net,而在代码示例一个有一类定义与此字段:

private DateTime? startdate

是什么DateTime? 意思?

Answer 1:

由于DateTime是一个struct ,而不是一class ,你会得到一个DateTime 对象 ,而不是引用 ,当你声明该类型的字段或变量。

而且,以同样的方式作为一个int不能null ,所以这个DateTime对象不能是null的,因为它不是一个参考。

加入问号把它变成一个空类型 ,这意味着, 或者它是一个DateTime的对象, 或者它是null

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



Answer 2:

这是一个为空的日期时间。 ? 一个基本类型后/结构表明,它是可空的版本。

日期时间是永远不能为空的结构。 从MSDN :

DateTime值类型表示值的范围从午夜12:00:00,1月1日,0001公元或AD通过下午11点59分59秒(也称为共同的时代,或CE),9999年12月31日,日期和时间AD(CE)

DateTime? 可以为null但是。



Answer 3:

作为值类型后缀允许将被othwerwise不可能空分配。

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);
        }
    }

约会时间? 是syntatically相当于可空<日期时间>。



Answer 4:

这相当于可空<日期时间>。 您可以附加“?” 任何原始类型或结构。



Answer 5:

它基本上给你一个基元额外状态。 它可以是一个值,也可以为null。 它可以是在一个价值并不需要分配情况有用。 因此,而不是使用例如,datetime.min或最大,您可以将其指定为null,代表没有价值。



Answer 6:

正如我们所知,DateTime的是一个结构指的DateTime是值类型,所以你得到一个DateTime对象,而不是一个参考,因为日期时间是不是一类,当你声明该类型的字段或变量不能用空初始因为值类型不接受空。 以同样的方式为int不能为空。 所以DateTime对象永远是空的,因为它不是一个参考。

但有时我们需要为空的变量或值类型的领域,到时候我们用问号,使他们可空类型,使他们允许空。

例如:-

约会时间? 日期= NULL;

诠释? 的intValue = NULL;

在上面的代码中,可变日期是日期时间的目的,或者它为空。 同为的intValue。



文章来源: What does “DateTime?” mean in C#?