【发布时间】:2020-04-10 16:40:09
【问题描述】:
我有一个代码,我正在计算日期之间的一些间隔,为此我定义了一个添加到一个日期的间隔时间,为此我看到了两种方法,但我不明白其中的区别,对我来说他们是一样的:
var timespan = new TimeSpan(0, 0, 5);
var d1 = new DateTime(2010, 1, 1, 8, 0, 15);
var newDateWithTimeSpan = d1.Add(timespan);
var newDateWithSeconds = d1.AddSeconds(5);
Console.WriteLine(newDateWithTimeSpan);
Console.WriteLine(newDateWithSeconds);
【问题讨论】:
-
两者都加了 5 秒,为什么你会期待不同的结果?
-
使用专用类型的一个原因是清晰。
-
你也可以
var timespan = TimeSpan.FromSeconds(5)。也可以使用TimeSpand1 + timespan。只需多种方式来做事,以提供更大的灵活性。 -
如果你给它一个有意义的名字(例如 playerReactionLimit),你可以通过创建一个时间跨度对象来赋予这个神奇的数字 5 一个意义。如果有帮助,您还可以在整个代码中重复使用时间跨度对象,如果您需要更改时间间隔,您只需在 Timespan 构造函数中更改它,而不是在您使用“幻数”5 的任何地方进行更改。