开始日期用于多个地方,默认为某个值。
我可以将其声明为或常量或静态属性。
DateTime dtStart = DateTime.Now.AddYears(-2).AddMonths(-1).ToShortDateString();
修改
string dtStart = DateTime.Now.AddYears(-2).AddMonths(-1).ToShortDateString();
我没想提到我想知道它在多线程环境中的行为,并将数据类型更改为字符串。
答案 0 :(得分:0)
由于值的变化,它不能是常数。您可以轻松地将其作为类中的静态属性:
public static string StartDate
{
get
{
return DateTime.Now.AddYears(-2).AddMonths(-1).ToShortDateString();
}
}
注意:为了更容易测试代码,您应该将方法传递给开始日期,而不是让它们都调用此属性。
此外,您希望此返回字符串似乎很奇怪......
对于多线程,每个线程都会调用此属性本身。这样会很好,因为该属性不会修改任何状态。
答案 1 :(得分:0)
如果项目中存在
,请尝试使用一个类静态 public static class Uitl {
public static DateTime DateStart = default(DateTime);
public Uitl (){
if(DateStart == default(DateTime))
DateStart = DateTime.Now.AddYears(-2).AddMonths(-1);
}
}
或使用
Session["DateStart"] = DateTime.Now.AddYears(-2).AddMonths(-1).ToShortDateString();