有没有办法更改 TimeSpan 对象的值?

Jen*_*nix 1 c#

我定期获取以毫秒为单位的新时间值,并且需要“00h 00m 00s”等形式,因此考虑使用TimeSpan,因为它使用起来非常简单。

TimeSpan t = TimeSpan.FromMilliseconds(timeValue);

但我现在担心的是GC。我认为每次都调用FromMilliseconds()不是一个好主意,因为它似乎总是创建一个新实例。我需要每隔 0.1 秒左右更新一次时间值,因此如果有一种方法可以直接修改 TimeSpan 对象的值,那么它对我的情况非常有用。否则,我想我需要自己创建一个方法..

是否可以?

Swe*_*per 5

ATimeSpan是不可变的。

TimeSpan如果要更改其值,则必须创建一个新实例。正如您从文档中看到的,所有属性都是仅获取的。

但不用担心GC!只有当你真正遇到性能问题时才担心它。TimeSpan我认为占用的空间很小。

  • 实际上,它包含了一个“长”的刻度值。尝试修改(即替换)该值将使用与替换 TimeSpan 相同的空间 (2认同)