我想问一个关于日期时间控制空值的问题。
if (mydatetime != null)
或
if(mydatetime.hasvalue)
哪一个更好,或更合适,为什么?
谢谢。答案 0 :(得分:3)
第一次比较!=null
是一个有效的比较所有时间,因为只有当变量被声明为Nullable时才能使用第二个比较,或者换言之,只有在使用DateTime时才能使用与.HasValue
的比较变量声明为Nullable
例如:
DateTime dateInput;
// Will set the value dynamically
if (dateInput != null)
{
// Is a valid comparison
}
if (dateInput.HasValue)
{
// Is not a valid comparison this time
}
在哪里
DateTime? dateInput; // nullable declaration
// Will set the value dynamically
if (dateInput != null)
{
// Is a valid comparison
}
if (dateInput.HasValue)
{
// Is also valid comparison this time
}
答案 1 :(得分:0)
如果你问
if (mydatetime != null)
您正在检查变量是否已实例化
如果实际上不实例化,则以下语句将为您提供
一个NullReferenceException
if(!mydatetime.hasvalue)
因为您尝试访问null
仅当您将DateTime
声明为Nullable
时,它才会显示相同的行为。
Nullable<DateTime> mydatetime = null;
Console.WriteLine(mydatetime.HasValue);