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
>>>
>>
>>
>

Responder a