2016-09-29 4 views
3

Допустим, я пишу этот маленький LINQPad фрагмент кода и запустить его, я получаю то, что я ожидалLINQPad не сброс статических переменных между запусками, если код не изменится

enter image description here

Но когда я снова нажать F5, список будет есть две позиции в нем:

enter image description here

Я не ожидал, что это сделать это и не могу понять, как, почему это будет.

Этот список будет расти каждый раз, когда я запустил его, если я не сделаю что-то в коде, даже добавьте комментарий. Затем он будет сброшен на одну запись.

Это по дизайну? Если да, то почему? Я нахожусь 5.08.01

ответ

5

Это по дизайну. Он не сбрасывает домен приложения, если вы не выполните одно из следующих действий:

1) Используйте Ctrl + Shift + F5, чтобы сбросить его по требованию

или

2) Зайдите в Edit/Preferences/Advanced и установите для параметра «Всегда использовать свежие домены приложений» значение «Истина». Это будет сбрасываться каждый раз, когда вы запустите сценарий

или

3) Вставьте следующий код в запросе (это говорит LINQPad использовать следующий раз, когда свежий домен запуске):

Util.NewProcess = true; 

As почему, возможно, есть много преимуществ, но я бы сказал, что производительность является основной. Вы можете поместить результаты дорогого запроса в статическую переменную и запустить ее только в первый раз.