2016-09-29 49 views
3

比方說,我寫這個小linqpad片段,並運行它,我得到了我期望Linqpad不運行之間重置靜態變量,除非代碼改變

enter image description here

但是當我再次按下F5,該列表會在這兩個項目:

enter image description here

我沒想到它這樣做,不能怎麼弄清楚爲什麼會。

這個列表在我每次運行時都會增長,除非我對代碼做些什麼,甚至可以添加評論。然後它將重置爲一個條目。

這是設計嗎?如果是這樣,爲什 我在5.08.01

回答

5

它是由設計。它不會重置應用程序域除非你做下列之一:

1)使用Ctrl + Shift + F5鍵重置需求

2)進入編輯/首選項/高級並將「始終使用新應用程序域」設置爲True。這將在每次運行腳本時重置

3)將下面的代碼到你的查詢(這告訴LINQPad使用你運行一個新的域下一次):

Util.NewProcess = true; 

由於爲什麼,可能有多種好處,但我會說性能是主要的。您可以將昂貴的查詢結果放入靜態變量中,並且只能在第一次運行該變量。