我正在使用 LINQ to SQL 连接我的 WinForms (VB.NET) 程序与某个经常会有 DateTime 列为空的 SQL Server 数据库。我扩展了一些 LINQ 对象,并添加了一些 Nullable(Of DateTime) 属性。基本上,我正在计算特定值是否存在。该值是一个 DateTime。如果它不存在,我想创建一个 Nullable(Of DateTime) 对象(结构,或其他),并将 HasValue 属性设置为 False。
我进行了一些研究,显然,在 Nullable(T) 上的 New 构造函数会创建一个 HasValue 设置为 True 的对象。
两个问题:
1. 为什么会这样呢?既然 Nullable(T) 结构是专门为这种情况创建的,那么默认行为为什么是 HasValue=True 呢?
2. 初始化一个Nullable(Of T) 以实际上是 null,最好的方法是什么?
谢谢!
我进行了一些研究,显然,在 Nullable(T) 上的 New 构造函数会创建一个 HasValue 设置为 True 的对象。
两个问题:
1. 为什么会这样呢?既然 Nullable(T) 结构是专门为这种情况创建的,那么默认行为为什么是 HasValue=True 呢?
2. 初始化一个Nullable(Of T) 以实际上是 null,最好的方法是什么?
谢谢!
Dim x as New Nullable(Of DateTime)
,但是返回一个具有HasValue = True
和Value = '1/1/0001 00:00'
的对象。我错了吗? - mbm29414