これらのうちの一つを他よりも選ぶ理由はありますか?
DateTime myDate = new DateTime();
または
DateTime myDate = default(DateTime);
どちらも1/1/0001 12:00:00 AM
と同じです。
いいえ、それらは同一です。
default()
は、任意の値型(DateTime
は値型です)に対して常にパラメータのないコンストラクタを呼び出します。
メソッドのDateTimeパラメータにデフォルト値を使用する場合は、default(DateTime)のみを使用できます。
次の行はコンパイルされません。
private void MyMethod(DateTime syncedTime = DateTime.MinValue)
この行はコンパイルされます:
private void MyMethod(DateTime syncedTime = default(DateTime))
答えはノーだ。どちらの場合もmdDate.Kind = DateTimeKind.Unspecified
。
したがって、次のようにしたほうがよいでしょう。
DateTime myDate = new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc);
myDate.Kind
プロパティは読み取り専用なので、コンストラクタが呼び出された後で変更することはできません。