DateTime is a value type, which, just like int and double, has no meaningful null value.
In VB.NET, you can write this:
Dim d As DateTime = Nothing
But all this does is to set d to the defaultDateTime value. In C# the equivalent code would be this:
DateTime d = default(DateTime);
...which is equivalent to DateTime.MinValue.
That said, there is the Nullable<T> type, which is used to provide a null value for any value type T. The shorthand for Nullable<DateTime> in C# is DateTime?.
Normally DateTime cannot be null, since is a Value Type, but using the nullable operator introduced in C# 2, you can accomplish this
DateTime
is a value type, which, just likeint
anddouble
, has no meaningfulnull
value.In VB.NET, you can write this:
But all this does is to set
d
to the defaultDateTime
value. In C# the equivalent code would be this:...which is equivalent to
DateTime.MinValue
.That said, there is the
Nullable<T>
type, which is used to provide anull
value for any value typeT
. The shorthand forNullable<DateTime>
in C# isDateTime?
.The question mark will give you a nullable type. The one that can either be set to its native value or to null.
DateTime
itself is a value type. It cannot be null.Nope, you cannot for
DateTime
is a value type.You might want to look at
Nullable<DateTime>
though (or DateTime? in short)No -- DateTime is a struct in C# and structs (value types) can not be null.
You can, however, use
Nullable<DateTime>.
No, its a structure not a class. Either make it a nullable type, e.g. System.DateTime? myValue; or use the System.DateTime.MinValue as a sentinel.