是否可以让 Visual Studio 进行数学表达式求值/归约?

例如,如果我输入“-0.005 + -0.345”,如何让 Visual Studio 减少该值(即将其替换为减少)?我必须写宏吗?如果是这样,是否有任何预先存在的宏可以执行这种类型的表达式缩减?

需要明确的是,我希望能够突出显示一个表达式并将其替换为简化的结果。许多人建议立即窗口,但我不明白这是否足够?

编辑 我应该指出,这是在编辑而不是运行或调试时。即时窗口几乎没有用处。我也认为这是一个语言中立的问题。我当然有兴趣看到我发布的宏的替代宏。

编辑 去一次...去两次...(IE。在我考虑接受我自己的答案之前还有其他建议吗?)

有帮助吗?

解决方案

感谢您对上述的答案。

有可能是更好的方法,但这里有一个快速和肮脏的宏做什么,我需要的。

参考对System.Data和System.Xml命名空间需要添加。

突出显示要评估和运行宏(它使用所计算出的列中的数据表,以计算表达式。)将取代具有减小的结果表达的表达。

修改 - 更新下面的代码。它的工作非常好,减少了大量的表情。正如有人指出存在的直接窗口,但是这不会进行编辑工作。此宏对于基本的表达与语言无关的溶液“(),+, - ,*,/".


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

其他提示

Visual Studio中默认不会做任何数学表达式评估/减少。我不知道,如果你可以通过像ReSharper的项目获得的支持,但如果它是可用时,它会在加载项。

此外,这将有助于了解您所使用的语言?

某些语言可以是在这方面很有帮助。 F#例如可以很容易地通过交互式窗口评估在IDE中表达,并显示出结果。这可以很容易地重新添加到您的代码,但它并不显得你寻找什么。

这是一个答案:是的,可以使用以下步骤。(虽然从技术上讲可以实现您所要求的功能,但我不确定它是否非常有用。:-)

  1. 在程序中设置一个断点,调试程序时可能会遇到该断点。
  2. 然后,在 Visual Studio 调试器下运行您的程序。
  3. 当命中断点时,打开“监视”窗口。
  4. 在“监视”窗口中,通过单击“名称”列添加新监视。
  5. 输入表达式“-0.005 + -0.345”(不带引号),然后按 [Enter]。...您应该看到“值”列填充了 -0.35。

当然,这不是在编辑器窗口的上下文中......这大概就是您想要执行缩减的地方。再说一遍,我想这不是很有用。加载项是在编辑器窗口中执行此操作的可能方法。

您可以只去即时窗口,键入 “?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top