dtb a raison sur DateTime
étant immuable. Pensez-y de cette façon: un DateTime
est un type de valeur, ce qui le place dans la même catégorie que int
ou double
. Les instances de ces structures ne peuvent pas être modifiées; ils ne peuvent être évalués et copiés.
Tenir compte de ce code:
int i = 4;
i + 2; // does not compile, but what if it did?
// would i become 6? clearly not --
// i + 2 expresses a NEW value, which can
// be copied somewhere
i = i + 2; // there we go -- that's better
Ceci est analogue à:
DateTime d = DateTime.Now;
TimeSpan t = TimeSpan.FromDays(1.0);
d.Add(t); // compiles (because AddDays is a function),
// but is really the same as i + 2 above
d = d.Add(t); // that's better
Par ailleurs, une chose qui pourrait aider à rendre cela plus clair se rend compte que la ligne ci-dessus, d = d.Add(t)
, est identique à d = d + t
. Et vous n'écririez pas d + t
sur sa propre ligne, tout comme vous n'écririez pas i + 2
sur sa propre ligne.
Merci. J'ai résolu mon problème! –
vous pourriez vouloir accepter cette réponse –
Oui.Je vais. J'ai juste une restriction, SO ne me laisse pas le faire avant 11minutes. Je ne sais pas pourquoi .. –