我对Nullable有点新意。我在C#中有一个DateTime,我想要为null,而不是在try-catch中赋值,然后检查它是否为null。
代码:
DateTime? dt = null;
try
{
dt = DateTime.ParseExact(stringDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
}
catch(FormatException)
{
Console.WriteLine("The given string is not valid and could not be converter to a DateTime");
}
// Check if the DateTime is not null
// If it's not null, do something with the DateTime
所以,我的问题:
我应该使用哪两个,为什么我应该使用它,以及两者之间有什么区别:
if(dt != null)
{
doSomethingWithDateTime(dt);
}
或者:
if(dt.HasValue)
{
doSomethingWithDateTime(dt.Value);
}