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?)

Foi útil?

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: -).

  1. Definir um ponto de interrupção em seu programa que é provável que obtenha sucesso quando você depurar o programa.
  2. Em seguida, execute o seu programa sob o depurador Visual Studio.
  3. Quando o ponto de interrupção é atingido, abra a janela Watch.
  4. Na janela Watch, adicionar um novo relógio, clicando na coluna Nome.
  5. 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 "? "

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