Realizar avaliação / redução de expressão no Visual Studio 2008
-
13-09-2019 - |
Pergunta
É possível obter Visual Studio para fazer a avaliação da expressão / redução matemática?
Por exemplo, se eu digito '-0,005 + -0,345' como faço para obter o Visual Studio para reduzir esse (ou seja, substituí-lo com a redução)? Eu tenho que escrever uma macro? Se assim for, existem macros pré-existentes para fazer esse tipo de redução de expressão?
Só para ficar claro, eu quero ser capaz de destacar uma expressão e tê-lo substituído com o resultado reduzida. Muitos estão sugerindo a janela imediata, mas não vejo como isso será suficiente?
Editar Gostaria de salientar que este é durante a edição não execução ou depuração. A janela imediata é de pouco ou nenhum uso. Eu também considero isso uma questão neutra linguagem. Eu certamente estar interessado em ver macros alternativas ao que eu tinha postado.
Editar Dou-lhe uma ... dou-lhe duas ... (isto é, quaisquer outras sugestões antes de eu considerar aceitar a minha própria resposta?)
Solução
Obrigado pelas respostas acima.
Provavelmente há maneiras melhores, mas aqui está uma macro rápida e suja que faz o que eu preciso.
As referências aos namespaces System.Data e System.Xml precisam ser adicionados.
Realce a expressão que deseja avaliar e executar a macro (ele usa a coluna calculada na DataTable para avaliar a expressão.) Ele irá substituir a expressão com o resultado reduzida.
Editar - código atualizado abaixo. Funcionou muito bem para reduzir um grande número de expressões. Como apontado por outros, há a janela imediata, mas isso não vai funcionar para fins de edição. Esta macro é uma solução independente idioma para expressões básicas "(), +, -, *, /".
Sub Eval()
Dim ts As EnvDTE.TextSelection = DTE.ActiveDocument.Selection
Using dt As New DataTable()
dt.Columns.Add("Expression", GetType(Double), ts.Text)
dt.Rows.Add(dt.NewRow)
ts.Text = CDbl(dt.Rows(0).Item("Expression"))
End Using
End Sub
Outras dicas
Visual Studio por padrão não vai fazer qualquer avaliação de expressão / redução matemática. Eu não tenho certeza se você pode obter suporte para que através de itens como ReSharper, mas se ele estiver disponível será em um add-in.
Além disso, seria útil saber o idioma que você está trabalhando?
Alguns idiomas podem ser úteis nesta área. F #, por exemplo, faz com que seja fácil de avaliar expressões no IDE através da janela interativa e irá exibir o resultado. Isto poderia ser facilmente adicionados para trás em seu código, mas ele não parece ser exatamente o que você está procurando.
Eis uma resposta: Sim, é possível usar os seguintes passos. (Embora tecnicamente realizar o que você está pedindo, eu não tenho certeza que ele será extremamente útil: -).
- Definir um ponto de interrupção em seu programa que é provável que obtenha sucesso quando você depurar o programa.
- Em seguida, execute o seu programa sob o depurador Visual Studio.
- Quando o ponto de interrupção é atingido, abra a janela Watch.
- Na janela Watch, adicionar um novo relógio, clicando na coluna Nome.
- Insira o seu expressão '-0,005 + -0,345' (sem as aspas) em seguida, bateu [Enter]. ... Você deverá ver a coluna de valor são preenchidos com -0.35.
É claro que isso não é no contexto da janela do editor ... que é, presumivelmente, onde você gostaria de realizar a redução. Então, novamente, não é muito útil, eu imagino. Um add-in é o caminho provável de fazer isso na janela do editor.
Você pode simplesmente ir para a janela imediata e digite "?