是否有理由選擇其中之一?新DateTime()與默認(DateTime)
DateTime myDate = new DateTime();
或
DateTime myDate = default(DateTime);
他們兩人都是相等1/1/0001 12:00:00 AM
。
是否有理由選擇其中之一?新DateTime()與默認(DateTime)
DateTime myDate = new DateTime();
或
DateTime myDate = default(DateTime);
他們兩人都是相等1/1/0001 12:00:00 AM
。
答案是否定的。請記住,在這兩種情況下,mdDate.Kind = DateTimeKind.Unspecified
。
因此它可能是更好的做到以下幾點:
DateTime myDate = new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc);
的myDate.Kind
屬性是隻讀的,所以構造函數被調用後,不能更改。
如何回答OP的問題? –
請查看我答案的前4個單詞。 –
我會反駁這個。默認的'DateTime'作爲一個未設置值的值非常有用,只需比較'default(DateTime)'。什麼用途是非默認的'01/01/0001'值? – Rawling
如果您想在方法中使用DateTime參數的默認值,則只能使用默認值(DateTime)。
下面的行不會編譯:
private void MyMethod(DateTime syncedTime = DateTime.MinValue)
此行將編譯:
private void MyMethod(DateTime syncedTime = default(DateTime))
這就是我正在尋找的答案。謝謝! – GigaKatowice
當然DateTime.MinValue不能編譯?可選參數必須是編譯時常量,而MinValue不是。雖然Date(DateTime)和new DateTime()都是有效的(這實際上很有趣,因爲DateTime值x = default(DateTime)無效,因爲DateTime值不能被聲明爲編譯時常量) –
等於'DateTime.MinValue',所以你也可以只做到'日期時間指明MyDate =日期時間.MinValue':/ – Lloyd
@Lloyd大部分時間......但不是默認參數DateTime.MinValue不是一個編譯時間常量 - 但是默認的(DateTime)/ new DateTime()是。 – Ricibob
只是爲了澄清@ Ricibob的優秀評論,因爲它很重要:如果您使用可選參數創建方法,則只能使用'default(DateTime)'或'New DateTime()'。這些都是*編譯時間常量*,對於可選參數值是必需的。如果不需要編譯時間常量,那麼'default(DateTime)','new DateTime()'和'DateTime.MinValue'是可以互換的。 – leanne