Hola gente!


No solo en tipos valor, vean que String tambien tiene ese patron. Es por
decision de hacer los Strings inmutables, algo que viene, hmmm.... digamos
desde los C++ Idioms de Coplien, se adopto en Java, y ahora lo tenemos en
.NET.

 

Nos leemos!



Angel "Java" Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

 

From: [email protected] [mailto:[email protected]] On Behalf Of Leonardo
Micheloni
Sent: Friday, February 06, 2009 2:27 PM
To: [email protected]
Subject: [puntonet] Bucle con Fechas

 

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