dtb tiene razón sobre DateTime
siendo inmutable. Piénselo de esta manera: un DateTime
es un tipo de valor, que lo coloca en la misma categoría que int
o double
. Las instancias de estas estructuras no pueden ser modificadas; solo pueden ser evaluados y copiados.
consideran este código:
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
Esto es análogo a:
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
Por cierto, una cosa que podría ayudar a hacer esto más claro es darse cuenta de que la línea anterior, d = d.Add(t)
, es la lo mismo que d = d + t
. Y no escribiría d + t
en su propia línea, al igual que no escribiría i + 2
en su propia línea.
Gracias. ¡Resolvió mi problema! –
es posible que desee aceptar esta respuesta. –
Sí.Voy a. Solo tengo una restricción, así que no me deja hacerlo antes de los 11 minutos. No sé por qué ... –