Выполнение оценки / сокращения выражений в Visual Studio 2008 - PullRequest
1 голос
/ 11 июня 2009

Можно ли заставить Visual Studio выполнять оценку / сокращение математических выражений?

Например, если я наберу '-0.005 + -0.345', как я получу Visual Studio, чтобы уменьшить это (то есть заменить его на сокращение)? Должен ли я написать макрос? Если да, существуют ли какие-либо макросы для такого сокращения выражений?

Просто чтобы прояснить, я хочу иметь возможность выделить выражение и заменить его уменьшенным результатом. Многие предлагают немедленное окно, но я не вижу, как этого будет достаточно?

Редактировать Я должен отметить, что это во время редактирования не работает или отладки. Непосредственное окно мало что дает. Я также считаю это языковым вопросом. Мне, безусловно, было бы интересно увидеть альтернативные макросы тому, который я опубликовал.

Редактировать Идти один раз ... Идти дважды

Ответы [ 4 ]

1 голос
/ 11 июня 2009

Спасибо за ответы выше.

Возможно, есть лучшие способы, но вот быстрый и грязный макрос, который делает то, что мне нужно.

Необходимо добавить ссылки на пространства имен System.Data и System.XML.

Выделите выражение, которое вы хотите оценить, и запустите макрос (он использует вычисляемый столбец в DataTable для вычисления выражения.) Он заменит выражение с уменьшенным результатом.

Редактировать - Обновлен код ниже. Это работало очень хорошо для сокращения большого количества выражений. Как отмечают другие, есть непосредственное окно, но оно не будет работать в целях редактирования. Этот макрос является независимым от языка решением для базовых выражений "(), +, -, *, /".


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
0 голосов
/ 11 июня 2009

Вы можете просто зайти в ближайшее окно и набрать "? "

0 голосов
/ 11 июня 2009

Вот ответ: Да, это возможно, используя следующие шаги. (Технически выполняя то, что вы просите, я не уверен, что это будет чрезвычайно полезно.: -)

  1. Установите точку останова в вашей программе, которая может получить удар при отладке программы.
  2. Затем запустите вашу программу в отладчике Visual Studio.
  3. Когда достигнута точка останова, откройте окно Watch.
  4. В окне Watch добавьте новые часы, щелкнув в столбце Name.
  5. Введите выражение «-0,005 + -0,345» (без кавычек), затем нажмите [Enter]. ... Вы должны увидеть столбец Значение, заполненный -0,35.

Конечно, это не в контексте окна редактора ... в котором, по-видимому, вы хотели бы выполнить сокращение. Итак, опять же, не очень полезно, я думаю. Надстройка - вероятный способ сделать это в окне редактора.

0 голосов
/ 11 июня 2009

Visual Studio по умолчанию не выполняет вычисление / уменьшение математических выражений. Я не уверен, сможете ли вы получить поддержку для этого через такие элементы, как ReSharper, но если он будет доступен, он будет в надстройке.

Кроме того, было бы полезно знать язык, на котором вы работаете?

Некоторые языки могут быть полезны в этой области. Например, F # облегчает оценку выражений в IDE через интерактивное окно и отображает результат. Это может быть легко добавлено обратно в ваш код, но это не совсем то, что вы ищете.

...