【发布时间】:2021-02-19 22:18:46
【问题描述】:
这个界面我已经看过很多次了:
public interface IDateTimeProvider
{
DateTime Now { get; }
DateTime UtcNow { get; }
DateTimeOffset OffsetNow { get; }
DateTimeOffset OffsetUtcNow { get; }
}
我只是不明白为什么要使用这种更详细的方法,而不是简单地使用DateTimeDateTimeOffset 的静态属性。
在什么情况下使用日期提供器比直接使用静态属性更好?
public SomeService(IDateTimeProvider dateTimeProvider)
{
this._dateTimeProvider = dateTimeProvider;
}
public void SomeMethod()
{
var date = _dateTimeProvider.UtcNow;
// var date = DateTime.UtcNow; // why not this
...
}
【问题讨论】:
-
尝试为这段代码写一个单元测试,看看会发生什么
标签: c# .net datetime interface