c# “DateTime?”在C#中意味着什么?





3 Answers

这是一个可以为空的DateTime。 ? 在原始类型/结构表明它是可以为空的版本之后。

DateTime是一个永远不能为null的结构。 来自MSDN

DateTime值类型表示日期和时间,其值范围为午夜12:00,1月1日,0001 Anno Domini或AD(也称为Common Era,或CE)至9999年12月31日晚上11:59:59 AD(CE)

DateTime? 但是可以为null。

c# .net datetime syntax nullable

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

private DateTime? startdate

DateTime? 意思?




它相当于Nullable <DateTime>。 你可以附加“?” 任何原始类型或结构。




我们知道,DateTime是一个结构意味着DateTime是一个值类型,所以你得到一个DateTime对象,而不是一个引用,因为DateTime不是一个类,当你声明一个字段或该类型的变量时,你不能用null初始化因为值类型不接受null。 与int一样,不能为null。 所以DateTime对象永远不会为null,因为它不是引用。

但有时我们需要可空变量或值类型字段,那时我们使用问号使它们成为可空类型,因此它们允许null。

例如:-

约会时间? date = null;

诠释? intvalue = null;

在上面的代码中,变量日期是DateTime的对象,或者它是null。 对于intvalue也是如此。






Related