我运行以下LINQPad的C#程序两次:
void Main()
{
new Bar();
}
class Bar
{
static DateTime staticInitTime = DateTime.Now;
DateTime initTime = DateTime.Now;
public Bar()
{
staticInitTime.Dump("staticInitTime");
initTime.Dump("initTime");
}
}
虽然我发现第一次运行的结果没有问题:
staticInitTime
3/4/2017 11:45:28 PM
initTime
3/4/2017 11:45:28 PM
我无法理解第二次运行的结果,仅在第一次运行后几秒钟:
staticInitTime
3/4/2017 11:45:28 PM
initTime
3/4/2017 11:45:40 PM
具体来说:为什么staticInitTime会在运行之间保持它的价值? 只有当我重新构建代码时,staticInitTime的值才会被初始化,但仅适用于第一次运行。