除非代码更改,否则Linqpad不会在运行之间重置静态变量

时间:2016-09-29 00:42:06

标签: linqpad

让我说我写这个小的linqpad片段并运行它,我得到我期望的

enter image description here

但是当我再次点击F5时,列表中会有两个项目:

enter image description here

我没想到会这样做,也无法理解为什么会如此。

每次运行它时列表都会增长,除非我对代码执行某些操作,甚至添加注释。然后它将重置为一个条目。

这是设计的吗?如果是这样的话? 我在5.08.01

1 个答案:

答案 0 :(得分:6)

这是设计的。除非您执行以下操作之一,否则它不会重置应用程序域:

1)使用Ctrl + Shift + F5按需重置

2)进入编辑/首选项/高级并将“始终使用新鲜应用程序域”设置为True。每次运行脚本时都会重置

3)将以下代码放入您的查询中(这告诉LINQPad下次运行时使用新域名):

Util.NewProcess = true;

至于为什么,可能有多种好处,但我认为表现是主要的。您可以将昂贵查询的结果放在静态变量中,并且只在第一次运行它。