如何解决TryParse Date和可空日期之间的差异

时间:2015-09-01 10:09:22

标签: .net vb.net date

使用tryparse转换日期时,我收到以下错误:

  

错误1选项Strict On禁止“日期?”的隐式转换   至   '日期'。

如何在进行检查时仍然使用可为空的日期,以确保日期不仅不为空而且有效?乍一看这可能没有意义,但如果它没有相关性,我需要能够有一个空日期,但是如果使用它仍然需要检查验证的日期值。

是的,我绝对宁愿严格执行选项。

2 个答案:

答案 0 :(得分:3)

要将Date.TryParse与Nullable(Of Date)一起使用,Nullable(Of Date)必须具有一个值。

    Dim dt As Date? = Date.MinValue

    If Date.TryParse("9/1/2015", dt.Value) Then
    Else
        dt = New Nullable(Of Date)
    End If

或者,您可以在TryParse中使用Date,如果成功将其分配给Nullable。

    Dim dt As Date? 
    Dim dtemp As Date
    If Date.TryParse("9/1/2015", dtemp) Then
        dt = dtemp
    Else
    End If

答案 1 :(得分:0)

如前所述,?州是Nullable。您可以使用HasValue()或GetValueOrDefault()等方法。请参阅此link

您编辑了自己的问题。试试这个;

If nullableDate.HasValue  Then
  date = nullableDate.Value
End If