Sure you can make an integer, double, datetime, etc. nullable with a change on the declaration.
DateTime? dt = null.
BUT
There are two things you need to be aware of.
1) DateTime? and DateTime are not the same data type so, if you do something like this:
DateTime? date1 = null;
date1 = DateTime.Now;
DateTime date2 = date1; // Wont work.
The correct way of accesing the value of your nullable type is like this:
DateTime date2 = date1.Value;
2) The second BUT is that you need to ALWAYS check if there is a value before you can use it.
DateTime? date1 = null;
DateTime date2 = date1.Value;
This will throw an exception, "Nullable object must have a value".
So it's not that simple as adding the nullable operator, you need to check the property "HasValue" every time you want to use your variable:
DateTime? date1 = DateTime.Now;
if(date1.HasValue)
{
DateTime date2 = date1.Value;
}
Use nullables wisely.