Pregunta

¿Es posible obtener Visual Studio para hacer matemática expresión de evaluación / reducción?

Por ejemplo si escribo '-0.005 -0.345 +' ¿Cómo puedo obtener Visual Studio para reducir esa (es decir, sustituirla por la reducción)? ¿Tengo que escribir una macro? Si es así, ¿hay ninguna macro preexistentes que hacer este tipo de reducción de la expresión?

Para ser claro, quiero ser capaz de poner de relieve una expresión y reemplazarlo por el menor resultado. Muchos están sugiriendo la ventana inmediata, pero no veo cómo eso será suficiente?

Editar Debo señalar que esto es durante la edición no se está ejecutando o depuración. La ventana inmediata es de poco o ningún uso. También considero esto una cuestión independiente del idioma. Sin duda estar interesado en ver las macros alternativas a la que había publicado.

Editar A la una ... a las dos ... (es decir, antes de cualquier otra sugerencia que considero aceptar mi propia respuesta?)

¿Fue útil?

Solución

Gracias por las respuestas anteriores.

Probablemente hay mejores maneras, pero aquí hay una macro rápida y sucia que hace lo que necesito.

Las referencias a los espacios de nombres System.Data y System.XML necesitan ser añadido.

Resalte la expresión que desea evaluar y ejecutar la macro (que utiliza la columna calculada en el DataTable para evaluar la expresión.) Se sustituirá la expresión con el resultado reducida.

Editar - Actualizado código de abajo. Funcionó muy bien para reducir un gran número de expresiones. Como se ha comentado en otras existe la ventana inmediata, pero esto no va a funcionar para fines de edición. Esta macro es una solución independiente de idioma para expresiones 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

Otros consejos

Visual Studio por defecto no va a hacer cualquier expresión matemática de evaluación / reducción. No estoy seguro de si se puede obtener apoyo para que a través de elementos como ReSharper, pero si se encuentra disponible Será en un complemento.

Además, sería útil saber el idioma que se está trabajando en?

Algunos idiomas pueden ser útiles en esta área. F #, por ejemplo, hace que sea fácil de evaluar expresiones en el IDE a través de la ventana interactiva y mostrará el resultado. Esto podría ser fácilmente añadió de nuevo en su código, pero no parece ser exactamente lo que estás buscando.

Aquí hay una respuesta: Sí, es posible utilizar los siguientes pasos. (Mientras se realiza técnicamente lo que estás pidiendo, no estoy seguro de que será de gran utilidad: -).

  1. Establecer un punto de interrupción en su programa que es probable que le peguen al depurar el programa.
  2. A continuación, ejecutar el programa bajo el depurador de Visual Studio.
  3. Cuando se golpea el punto de interrupción, abra la ventana de inspección.
  4. En la ventana Inspección, añadir un nuevo reloj haciendo clic en la columna Nombre.
  5. Introduzca su expresión '-0.005 -0.345 +' (sin las comillas) y presione [Enter]. ... Debería ver la columna Valor obtener rellena con -0.35.

Por supuesto, eso no es en el marco de la ventana del editor ... que es, probablemente, el lugar donde quiere desea llevar a cabo la reducción. Así que de nuevo, no es muy útil, imagino. Un complemento es la forma que pueda hacerlo en la ventana del editor.

Se podía ir a la ventana inmediata y tipo "? "

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top