Frage

Ist es möglich, Visual Studio zu tun mathematische Ausdruck Auswertung / Reduktion zu bekommen?

Zum Beispiel, wenn ich tippe ‚-0,005 + -0,345‘ wie bekomme ich Visual Studio zu reduzieren, dass (das heißt ersetzen Sie es mit der Reduktion)? Muss ich ein Makro schreiben? Wenn ja, gibt es bereits bestehenden Makros diese Art von Ausdruck Reduktion zu tun?

Just klar sein, möchte ich einen Ausdruck markieren zu können und haben es mit dem reduzierten Ergebnis ersetzt. Viele schlagen vor, die sofortigen Fenster, aber ich sehe nicht, wie das genügt?

Bearbeiten Ich möchte darauf hinweisen, dass dies während der Bearbeitung nicht oder Debuggen ausgeführt wird. Die unmittelbaren Fenster sind von wenig bis gar keine Verwendung. Ich halte auch diese eine Sprache neutral Frage. Ich würde in zu sehen alternative Makros auf die man sicherlich interessiert sein, die ich geschrieben hatte.

Bearbeiten Going Einmal ... gehendes Zweimal ... (das heißt andere Vorschläge, bevor ich meine eigene Antwort betrachten zu akzeptieren?)

War es hilfreich?

Lösung

Vielen Dank für die oben genannten Antworten.

Es gibt wahrscheinlich bessere Möglichkeiten, aber hier ist ein schneller und schmutziger Makro, das tut, was ich brauche.

Verweise auf den System.Data und System.XML Namensraum hinzugefügt werden müssen.

Markieren Sie den Ausdruck, den Sie möchten, um das Makro zu bewerten und laufen (es die berechnete Spalte in der Datentabelle verwendet den Ausdruck auszuwerten.) Es wird der Ausdruck mit dem reduzierten Ergebnis ersetzen.

Bearbeiten - Aktualisiert Code unten. Es funktionierte sehr gut für eine große Anzahl von Ausdrücken zu reduzieren. Wie bereits von anderen darauf hingewiesen, es ist die unmittelbaren Fenster, aber dies wird für die Bearbeitung nicht. Dieses Makro ist eine sprachunabhängige Lösung für grundlegende Ausdrücke „(), +, -, *, /".


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

Andere Tipps

Visual Studio wird standardmäßig jede mathematische Ausdruck Auswertung / Reduktion nicht. Ich bin mir nicht sicher, ob Sie die Unterstützung für die über Gegenstände wie ReSharper bekommen können, aber wenn es verfügbar ist, wird es in einem Add-In sein.

Auch wäre es hilfreich sein, die Sprache zu wissen, in dem Sie arbeiten?

Einige Sprachen können in diesem Bereich hilfreich sein. F # zum Beispiel macht es einfach Ausdrücke in der IDE über das interaktive Fenster zu bewerten und das Ergebnis angezeigt werden. Dies könnte leicht hinzugefügt werden, in den Code zurück, aber es scheint nicht, genau das zu sein, was Sie suchen.

Hier ist eine Antwort: Ja, es möglich ist, mit den folgenden Schritten. (Während technisch durchführen, was Sie fordern, ich bin nicht sicher, dass es sehr nützlich sein werden: -).

  1. einen Haltepunkt in Ihrem Programm fest, das Hit wahrscheinlich ist, zu erhalten, wenn Sie das Programm debuggen.
  2. Führen Sie dann das Programm unter dem Visual Studio-Debugger.
  3. Wenn der Haltepunkt erreicht wird, öffnen Sie das Watch-Fenster.
  4. Sie im Fenster Watch, fügen Sie eine neue Uhr, indem sie in der Spalte Name klicken.
  5. Geben Sie Ihren Ausdruck '-0,005 + -0,345' (ohne Anführungszeichen), dann drücken Sie die [Enter]. ... Sie sollten die Spalte Wert erhalten bevölkert mit -0,35 sehen.

Natürlich ist das nicht im Rahmen des Editorfensters ..., die vermutlich ist, wo Sie die Reduktion ausführen wollen würde. Also noch einmal, nicht sehr nützlich, stelle ich mir vor. Ein Add-In ist die wahrscheinliche Art und Weise, dass im Editorfenster zu tun.

Sie können nur auf die unmittelbare Fenster gehen und geben Sie "? "

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top