Nullable type and if issue

前端 未结 4 1250
暖寄归人
暖寄归人 2020-12-21 05:08

Here is simplest piece of code

Dim testInvoiceDate As DateTime? = If(String.IsNullOrEmpty(Nothing),
                                      Nothing,
                   


        
4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-21 05:53

    The If-statement will return the same datatype for both cases.
    Because the return-type in the False-case is DateTime, the return-type is the DateTime-default-value for the True-case.

    Default for DateTime is DateTime.MinValue which is #1/1/0001 12:00:00 AM#.

    This will work as expected:

    Dim testInvoiceDate As DateTime? = If(String.IsNullOrEmpty(Nothing),
                                          Nothing,
                                          New DateTime?(New Date(2018, 3, 20)))
    

提交回复
热议问题