2009-06-10 5 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

"< yourExpression>?" イミディエイトウィンドウと型に行くことができます。 – user79755

+0

@ neodyniumの場合、この時点ではIDEからの式削減オプションはありません。 – JaredPar

0

答え:はい、次の手順を使用することができます。 (技術的にはあなたが求めているものを行っている間、私はそれが非常に有用であろうか分からない。:-)

  1. は、プログラムをデバッグするときに打撃を受ける可能性がありますあなたのプログラムにブレークポイントを設定します。
  2. その後、Visual Studioデバッガでプログラムを実行します。
  3. ブレークポイントがヒットしたら、ウォッチウィンドウを開きます。
  4. [ウォッチ]ウィンドウで、[名前]列をクリックして新しいウォッチを追加します。
  5. 式「-0.005 + -0.345」(引用符なし)を入力し、[Enter]を押します。 ...値の列に-0.35が設定されていることがわかります。

もちろん、これはエディタウィンドウのコンテキストにはありません。おそらく削減を実行する場所です。だから、あまり有用ではない、私は想像する。エディタウィンドウでアドインを実行する可能性が高くなります。

+0

p.s.イミディエイトウィンドウも式を評価しますが、エディットには有効ではありません。 –

0

あなただけのこのプロジェクトはVB.NETである

+0

即時ウィンドウは編集目的では機能しません。 – user79755

+0

なぜですか?編集中はいつも使っています。 – RBarryYoung

+0

@RBarryYoung - 私はハイライトと表現を可能にし、それを縮小結果に置き換えたいと思っています。即時のウィンドウでこれをどのように達成していますか? – user79755

関連する問題