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

Mat*_*att 3 linqpad

假设我写了这个小的linqpad片段并运行它,我得到了我的期望

在此输入图像描述

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

在此输入图像描述

我没想到它会这样做,也无法弄清楚为什么会这样.

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

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

daz*_*sed 7

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

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

要么

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

要么

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

Util.NewProcess = true;
Run Code Online (Sandbox Code Playgroud)

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