OK, sí, digo una cuestión de diseño porque viendo el código de la estructura DateTime se podría haber incrementado su contador interno en le método Add para que se incremente a sí mismo, de todos modos no me había dado cuenta que pasa en todos los tipos por valor, buena info.
saludos, Leonardo Micheloni. 2009/2/6 Gustavo Ringel <[email protected]> > No hay nada raro, StringBuilder es reference type y DateTime es Value Type, > y asi esta definido por Disenio en el Framework, > > Todos los values types ante cualquier accion crean una nueva copia en el > stack, los reference types mantienen un puntero al heap el cual referencia > al stack y esto es lo que cambia en el caso de un reference type > > Para informacion mas tecnica y detallada busquen c# reference type y value > type y veran dibujos explicaciones mas extendidas. > > Abrazo. > > Gustavo. > > cuando haces date.AddDays() se crea en el stack una copia. > Si fuera > > 2009/2/6 Leonardo Micheloni <[email protected]> > >> Lo que pasa es que tu incremento dentro del bucle no está bien, hay un >> patrón que se repite por todo el framework que es algo raro, mirá, vos >> esperás (como es lógico) que el método Add de DateTime incremente la misma >> variable, pero no, devuelve un nuevo DateTime incrementado, o sea, tu código >> debería ser algo así: >> >> DateTime fechatermino = DateTime.Today.AddDays(1); >> >> for (DateTime fechainicio = DateTime.Today; fechainicio <= fechatermino; >> fechainicio = fechainicio.AddDays(1)) >> { >> Console.WriteLine(fechainicio); >> } >> >> Este extraño patrón está en varios lugares, pero no en todos, por el >> ejemplo StringBuilder se comporta de la manera lógica...en fin, cosas del >> diseño.. >> >> saludos, Leonardo Micheloni. >> >> >> >> 2009/2/6 Andres Guzman <[email protected]> >> >>> Camaradas tengo una duda, como puedo hacer un bucle entre variables tipo >>> DATETIME, o sea algo asi >>> >>> while(FECHAINICIO <= FECHATERMINO) >>> { >>> blablabla; >>> FECHAINICIO.ADDDAYS(1); >>> } >>> >>> o >>> >>> for(fechainicio; fechainicio<=fechatermino;fechainicio.adddays(1)) >>> { >>> blalbalablalalblba >>> } >>> Trato pero no puedo >>> >> >> >
