0

早上,我试图向现有的 TimeSpan 对象添加 1 分钟。我想避免声明一个新的 TimeSpan 对象,并认为以下代码可以工作:

ts3.Add(TimeSpan.FromMinutes(1));

MSDN 信息将 TimeSpan.Add 方法签名声明为:

public TimeSpan Add(TimeSpan ts)

和 TimeSpan.FromMinutes 方法为:

public static TimeSpan FromMinutes(double value)

Add 需要一个 TimeSpan 对象,而 FromMinutes 返回一个 TimeSpan 对象,所以我不明白为什么我不能将两者结合使用,如第一个代码块中所述。

如果有人能指出我哪里出错了,我将不胜感激。

谢谢。

4

3 回答 3

8

可以结合使用它们——但你需要知道它TimeSpan本身是不可变的——你需要使用返回值:

TimeSpan result = ts3.Add(TimeSpan.FromMinutes(1));

或者你总是可以分配回同一个变量:

ts3 = ts3.Add(TimeSpan.FromMinutes(1));

我个人会使用运算符重载:

TimeSpan result = ts3 + TimeSpan.FromMinutes(1);

或者

ts3 += TimeSpan.FromMinutes(1);
于 2012-06-25T08:20:12.323 回答
1

您必须创建一个新的 TimeSpan 才能将一分钟添加到现有的 TimeSpan。

唯一的方法是 myTimeSpan.Add(TimeSpan.FromMinutes(xxx)) 并使用返回的值作为加法的结果

于 2012-06-25T08:21:15.037 回答
0

您当然可以按照您指示的方式使用时间跨度。您的问题中没有任何内容表明有任何问题。

于 2012-06-25T08:19:37.367 回答