Y a-t-il une raison de choisir l'un d'entre eux plutôt que l'autre?
DateTime myDate = new DateTime();
ou
DateTime myDate = default(DateTime);
Les deux sont égaux 1/1/0001 12:00:00 AM
.
Non, ils sont identiques.
default()
, pour tout type de valeur (DateTime
est un type de valeur) appellera toujours le constructeur sans paramètre.
Si vous souhaitez utiliser la valeur par défaut pour un paramètre DateTime dans une méthode, vous pouvez uniquement utiliser la valeur par défaut (DateTime).
La ligne suivante ne sera pas compilée:
private void MyMethod(DateTime syncedTime = DateTime.MinValue)
Cette ligne va compiler:
private void MyMethod(DateTime syncedTime = default(DateTime))
La réponse est non. Gardez à l'esprit que dans les deux cas, mdDate.Kind = DateTimeKind.Unspecified
.
Par conséquent, il peut être préférable de procéder comme suit:
DateTime myDate = new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc);
La propriété myDate.Kind
est en lecture seule et ne peut donc pas être modifiée après l'appel du constructeur.