У меня есть функция с выражением лямбда:
int maxOccurrences = ( from field in data select field ).Max( f => f.Occurrences )
P.S. Я уверен, что есть более симпатичная/опрятная/более идиоматическая версия вышеупомянутого утверждения, было бы неплохо узнать, что это может быть, хотя это не важно для вопроса!
Если я изменяю что-то еще внутри функции, в то время как отладка говорит выражение Console.Write
, отладчик утверждает:
Модификация "метода", которая содержит выражение лямбда, предотвратит продолжение сеанса отладки, пока разрешено редактирование и продолжение.
Мне было интересно, почему это может быть так?
Я бы подумал, что IL, сгенерированный для функции lamba и оператора Console.Write
, будет отдельным и что Debugger может изменять и изменять, когда это необходимо. Есть ли какая-то фундаментальная концепция, которую я пропустил относительно функциональности lamda?