TimeSpan中有错误吗?

joj*_*ojo 4 c# timespan

这将输出"0":

TimeSpan span = TimeSpan.Zero;
span.Add(TimeSpan.FromMinutes(5));
Console.WriteLine(span.TotalSeconds);   -----> 
Run Code Online (Sandbox Code Playgroud)

但是,这将输出"300":

TimeSpan span = TimeSpan.Zero.Add(TimeSpan.FromMinutes(5));
Console.WriteLine(span.TotalSeconds);   -----> 
Run Code Online (Sandbox Code Playgroud)

这是一个已知的错误?

Joh*_*ers 17

TimeSpan.Add不修改输入 - 它返回一个新TimeSpan的输入加上加数:

备注

返回值必须介于TimeSpan.MinValue和TimeSpan.MaxValue之间; 否则,抛出异常.

返回值是一个新的TimeSpan; 原始TimeSpan未被修改.

  • 但是,应该注意它不是*因为*`TimeSpan`是一个结构.这是因为`TimeSpan`是*不可变的*.`System.Drawing.Point`是一个不可变的结构的例子.`string`是一个不是struct的不可变类型的例子. (3认同)