重复使用DateTime.Today会对性能产生负面影响吗?将变量中的值保存得更有效吗?
我根据今天的日期编写了一些计算新日期的函数。为了实现这一点,我相对经常使用DateTime.Today。我想知道将值保存在变量中是否更有效并使用变量而不是DateTime.Today,还是没有区别?
public static DateTime GetFirstDateInThePast()
{
var calculatedYear = DateTime.Today.Year;
var calculatedMonth = DateTime.Today.Month < 7 ? 1 : 7;
var day = 1;
return new DateTime(calculatedYear, calculatedMonth, day);
}
VS
public static DateTime GetFirstDateInThePast()
{
var today = DateTime.Today;
var calculatedYear = today.Year;
var calculatedMonth = today.Month < 7 ? 1 : 7;
var day = 1;
return new DateTime(calculatedYear, calculatedMonth, day);
}
答案 0 :(得分:5)
第一个是道德错误 ...如果您的代码在2017年12月31日23.59.59左右运行会怎样?也许Year
将 2017 而Month
将 1 :-)(发生这种情况的概率非常非常低......可能宇宙射线很可能会让你的PC崩溃,因此我认为它只是在道德上是错误的,并不是真的错了)
第二个是正确的。