A DateTime
объект является неизменным и после его создания никогда не изменится.DateTime.Now
создает новый DateTime
на основе текущего времени и будет верным на момент создания, но возвращенный экземпляр не будет обновлен.Вы всегда можете позвонить DateTime.Now
снова, чтобы узнать последнее время, но не держите ссылку рядом и ожидайте, что она обновится.
DateTime dt = DateTime.Now;
Thread.Sleep(1000);
DateTime dt2 = DateTime.Now;
TimeSpan elapsed = dt2 - dt;
Console.WriteLine(elapsed.TotalMilliseconds);
// Printed 1000.4 when I last ran it, depends on CPU timings
Как видите, dt
и dt2
различныпоскольку dt
не обновлялся, это было только время выполнения этой строки кода.