Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nullable type and if issue

Here is simplest piece of code

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

Why variable testInvoiceDate is not Nothing , but #1/1/0001 12:00:00 AM# ?! That is very weird !

like image 947
Disappointed Avatar asked Dec 18 '22 00:12

Disappointed


1 Answers

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)))
like image 165
MatSnow Avatar answered Jan 05 '23 10:01

MatSnow