Porque você não pode editar e continuar a depuração quando há uma expressão Lambda no método?

StackOverflow https://stackoverflow.com/questions/1300133

Pergunta

Eu já vi isso disse em outras questões que o Linq consulta sintaxe compila a um Lambda.

Então, por que você não pode fazê-edit-e-continuar quando há uma expressão Lambda no método, enquanto que com consulta notação que você pode?

O que é mais irritante, e está seriamente me fazendo considerar a mudança para usando consulta notação em todos os lugares , é que, mesmo se o seu código não está no Lambda, mas há um Lambda em outro lugar no mesmo método, você não pode editar-and-continuar! Isso é, como, dor gratuita infligida desenvolvedores incautos!

Foi útil?

Solução

Editar e continuar é capaz de implementações método de mudança "ao vivo", mas não o que os campos estão em tipos.

As expressões lambda (e métodos anônimos) podem acabar criando seus próprios tipos particulares quando capturar variáveis. Alterar a expressão lambda pode alterar os tipos envolvidos, o que quebraria editar e continuar.

Parece que deve ser possível fazer alterações no código que não têm esse impacto, mas eu suspeito que é simplesmente mais fácil para impedi-lo inteiramente - que também significa que você não fazer < em> iniciar fazer alterações e depois descobrir que você está impedido meio sua mudança.

(Pessoalmente, eu não sou um fã de E & C, em primeiro lugar, então eu nunca tinha notado isso.)

Outras dicas

Eu não sei ao certo, mas meu palpite é a complexidade em torno de descobrir o que precisa mudar quando existem variáveis ??locais envolvidas que são levantadas para classes. Eu estou supondo que descobrir que mudanças seriam seguro eo que não foi considerado complexo e propenso a erros para obter direito neste momento. O ferramental em 2010 centrada em torno de rosqueamento e a nova UI -. Talvez nós vamos obtê-lo na próxima versão

Eu não sei com certeza, mas presumo que tem a ver com a maneira como as expressões convertidos compilador lambda formando fechamentos em classes compilador gerado. Provavelmente não existe (fácil) maneira de aplicar as alterações feitas no código compilado e preservar o estado atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top