我正在針對定期具有可以爲null的DateTime列的SQL Server數據庫。我使用LINQ to SQL將我的WinForms(VB.NET)程序連接到數據。VB.NET - 使用HasValue = False創建Nullable(Of T)
我已經擴展了一些LINQ對象並添加了幾個Nullable(Of DateTime)
屬性。基本上,我正在計算一個特定的值是否存在。值爲DateTime
。如果它不存在,我想創建一個Nullable(Of DateTime)
對象(結構,不管),HasValue
屬性設置爲False
。
我做了一些研究,很明顯,Nullable(Of T)
上的新構造函數創建了一個設置爲True的HasValue
。
兩個問題:
- 這是爲什麼?由於
Nullable(Of T)
結構是專門爲這種類型的情況創建的,因此爲什麼默認行爲是HasValue
=True
? - 什麼是初始化
Nullable(Of T)
實際上是null
的最佳方法?
謝謝!
你確定這是正確的?我幾乎肯定我正在嘗試使用Dim x作爲新的Nullable(Of DateTime)'並返回一個HasValue = True和Value ='1/1/0001 00:00''的對象。我錯了嗎? – mbm29414
有一個原因,我把這些Debug.Assert在示例代碼中,我跑這個代碼和Asserts保證HasValue確實是錯誤的;-) –