我想問一個關於的問題,控制日期時間的空值。DateTime.hasvalue vs datetime == null,哪一個更好,爲什麼
if (mydatetime != null)
或
if(mydatetime.hasvalue)
哪一個更好,或者適當的,爲什麼?
謝謝。
我想問一個關於的問題,控制日期時間的空值。DateTime.hasvalue vs datetime == null,哪一個更好,爲什麼
if (mydatetime != null)
或
if(mydatetime.hasvalue)
哪一個更好,或者適當的,爲什麼?
謝謝。
如果你問
if (mydatetime != null)
正在檢查的變量是否蜂實例
如果它實際上是不實例下面的語句會給你 一個NullReferenceException
if(!mydatetime.hasvalue)
,因爲您嘗試訪問012的對象的屬性
只有當您聲明DateTime
爲Nullable
時,它纔會顯示相同的行爲。
Nullable<DateTime> mydatetime = null;
Console.WriteLine(mydatetime.HasValue);
首先比較!=null
是有效的比較所有的時間,其中爲第二如果變量聲明爲空,或與.HasValue
換句話說比較可以僅用於當日期時間變量聲明爲只可用於可空
例如:
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
}
它們並不完全等效。 'HasValue'只有在var是可爲空的時纔有效 – Plutonix
第一個是真的,如果它有一個值,第二個是真的,如果它沒有值。可能有一個'!'太多了。 –
我是可以空datetime(datetime?我的datetime = null),在這種情況下有什麼區別? – Aurora