2009-06-10 27 views
1

可以让Visual Studio执行数学表达式评估/缩减吗?在Visual Studio 2008中执行表达式评估/缩小

例如,如果我输入'-0.005 + -0.345',我该如何让Visual Studio减少它(即用减少代替它)?我必须写一个宏吗?如果是这样,有没有预先存在的宏来做这种类型的表达式减少?

为了清楚起见,我希望能够突出显示表达式并将其替换为减少的结果。许多人提出了直接的窗口,但我没有看到如何足以满足?

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

编辑去一次......两次去......(即任何其他建议我能考虑接受我自己的答案?)之前

回答

1

谢谢你的回答。

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

需要添加对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

的Visual Studio默认情况下不会做任何数学表达式求值/还原。我不确定是否可以通过像ReSharper这样的项目获得支持,但是如果它可用,它将在加载项中。

此外,知道您正在使用的语言会有帮助吗?

某些语言在这方面可能会有帮助。例如F#可以很容易地通过交互式窗口在IDE中评估表达式并显示结果。这可以很容易地添加回你的代码中,但它看起来并不是你想要的。

+0

该项目是VB.NET。 – user79755 2009-06-10 20:43:04

+0

@neodynium,那么在这一点上,没有任何表达式减少选项。 – JaredPar 2009-06-10 20:47:21

0

下面是答案:是的,可以使用以下步骤。 (虽然在技术上进行你问什么,我不知道这将是非常有用的。:-)

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

当然,这不是在编辑器窗口的上下文中......大概是,你想要执行还原的地方。我想,再次,不是很有用。加载项是在编辑器窗口中执行此操作的可能方法。

+0

p.s.立即窗口也会评估表达式,但是再次,对于编辑没有用处。 – 2009-06-10 20:57:13

0

你可以只是去直接窗口,键入 “?< yourExpression>”