¿Por qué no puedo modificar el string?

jacobopolavieja
26 de Mayo del 2009
Hola y gracias por leer,

Llevo un buen rato pegándome con una chorrada de código en C#, pero no consigo hacerlo funcionar como quiero.

El código es este:
--------------------------------------------
if (!timeAlreadyDone)
{
timeEnd = DateTime.Now;

MessageBox.Show("Time End is: " + timeEnd.ToString("HH:mm"));
timePassed = timeEnd - timeBeginning;
MessageBox.Show("Time (passed) is: " + timePassed.Minutes.ToString());
MessageBox.Show("Time (beginning) is: " + timeBeginning.ToString("dddd HH:mm"));
//MessageBox.Show("TimePassed is: " + timePassed.ToString());
if (timePassed.Minutes >= minutesToLog)
{
StringBuilder sb = new StringBuilder();
sb.Append(timeBeginning.ToString("dddd HH:MM"));
sb.Append("-");
sb.Append(timeEnd.ToString("HH:MM"));
sb.Append(" ");
sb.Append((numberOfWinnings / numberOfGames * 100).ToString());
sb.Append("%");
MessageBox.Show("Stringbuilder is: " + sb.ToString());
System.IO.StreamWriter sw = new System.IO.StreamWriter(myFile, true);
sw.WriteLine(sb.ToString());
//timeBeginning = DateTime.Now;
sw.Close();
}
timeAlreadyDone = true;
}
---------------------------------------------
El caso es que, aunque las variables de tiempo tienen los valores correctos, en el fichero SIEMPRE me escribe la misma hora, tanto para timeBeginning como timeEnd (que, como digo, no corresponde con el valor de sus variables).

He probado con strings normales, con stringbuilders, etc... y no entiendo por qué acaba escribiendo siempre la misma hora en todas las iteraciones, a pesar de que las variables contengan datos distintos.

¿Alguna pista?

¡Gracias!