C#中的DateTime?
和DateTime
(没有问号)有什么区别?什么是“DateTime?”而不仅仅是C#中的DateTime?
4
A
回答
17
DateTime?
可以为空,而不是DateTime
19
问号之后的值类型是用于Nullable<T>
结构的简化符号。
表示一个对象,其底层 类型为值类型也可以是 像引用类型分配空值。
的Nullable<T>
结构允许您将值类型(如DateTime
,Int32
,Guid
,等)并将其看作在某些方面引用类型。它确实有点复杂(在任务,解除操作员和其他方面),因此我建议您阅读Nullable Types (C# Programming Guide)及其相关文章。
可为空的类型是
System.Nullable
结构的实例。可以为空的 类型可以表示其基础值类型的 值的正常范围, 加上附加的空值。对于 例如,Nullable<Int32>
,发音 “的Int32的可空,”可以被分配 任何值-2147483648到2147483647 ,或者它可以被分配 空值。 ANullable<bool>
可以是 赋值为真或假,或者 为空。将数值和布尔类型赋值为 的能力是 在处理 数据库和其他数据类型 时特别有用,该数据类型包含可能不会被 赋值的元素。例如,数据库中的 布尔型字段可以存储 的值true或false,或者可能未定义为 。
2
DateTime?是另一种写可空的方式<DateTime>。我建议你阅读这更多地了解可空:
相关问题
- 1. DateTime而不是DateTime?
- 2. 为什么我需要*,*:在{...}之后而不是仅仅是{...}?
- 3. 为什么这不是在淡出而是仅仅显示它?
- 4. 为什么xmlns:xsi,而不仅仅是XML文档中的xsi?
- 5. DateTime的范围是什么?
- 6. 什么是“DateTime?”在C#中是什么意思?
- 7. 为什么我得到NativeGestures Qt中,而不是仅仅手势
- 8. 为什么在PowerShell中等于“-eq”而不仅仅是“=”?
- 9. 什么是SQLite中的datetime-type列?
- 10. 什么是CRM2011中DateTime的MinValue?
- 11. 为什么DateTime是.Net中的结构?
- 12. 为什么class =“btn btn-default”而不是仅仅class =“btn-default”
- 13. 当使用menu_selector时,为什么“Class :: method”而不仅仅是“method”?
- 14. 为什么使用react-redux而不仅仅是redux?
- 15. 为什么tarball叫tarball而不仅仅是焦油?
- 16. DuplicateHandle,为什么重复而不是仅仅获取?
- 17. 为什么我们需要键入 '( “+ I +”)',而不仅仅是 '(我)'
- 18. 整个世界为什么翻译而不仅仅是对象?
- 19. datetime转换仅日期php
- 20. 仅限MS DateTime日志表
- 21. 为什么文本对齐不仅仅是中心文本,而是图像呢?
- 22. 如何仅在DateTime对象中删除C#中DateTime的时间部分?
- 23. 导入React,{组件}而不仅仅是React的好处是什么?
- 24. 在Symfony2中,\ DateTime是什么意思?
- 25. 仅从Laravel的Datetime中选择月份
- 26. 在表格中使用rowversion(timestamp)而不是LastModifyOn(DateTime)列的好处是什么?
- 27. TimeZone.GetUtcOffset()需要DateTime,但是DateTime的时区被忽略,为什么?
- 28. DATETIME和DATETIME()之间的区别是什么
- 29. 为什么DateTime到Unix时间使用double而不是整数?
- 30. 为什么DateTime基于Ticks而不是毫秒?
即可空 - http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx –
2009-07-28 11:17:50
其实, 'DateTime?'本身不是null,因为它也是一个值类型。 'Nullable'暴露了'HasValue'属性,编译器使用它来伪装一个值为'Nullable '的值类型的引用类型语义。 –
2009-07-28 11:41:29