Frage

Ich bin ein c # newbie.Ich möchte eine Taschenrechner-App in C # schreiben.Wäre C # Expression-Bäume ein guter Weg, um für die Mut davon zu gehen?(Das heißt, der Teil, der eine Reihe von Keypresses nimmt und sie in einen Ausdruck schaltet, den der Rechner auf dem Bildschirm auswerten und anzeigt... Oder Grafik.)

Ich möchte die Standard-Math-Funktionen einschließlich Trig, Protokolle, Exponenten usw.

War es hilfreich?

Lösung

Da Ihre Sprache für mathematische Ausdrücke sicherlich viel ist, viel einfacher als C #, vermute ich, dass der Versuch, den Framework Expression Tree-Klassen wiederzuverwenden, um Ihre Asts zu repräsentieren, und wahrscheinlich ein Rezept für Frustration sein wird;Wenn Sie sich auf diese Klassen ansehen, sehen Sie viele Eigenschaften und Funktionalität, die für Ihre kleine Sprache völlig irrelevant sind.Ich würde deine eigene rollen, wenn ich du wäre.

Andere Tipps

Sie können von diesem Projekt möglicherweise lernen, es gibt gute Tutorials, wie es gemacht wurde

Haben Sie gesehen, wie Sie gesehen haben http://ncalc.codeplex.com ?

Es ist erweiterbar, schnell (z. B. eigener Cache) ermöglicht es Ihnen, benutzerdefinierte Funktionen und Variolen zur Laufzeit mit dem Umgang mit EvaluetFunction / EvaluateParameter-Ereignissen bereitzustellen. Beispielausdrücke können analysieren: Ausdruck E= neuer Ausdruck ("Runde (PI (PI, 2) + POW ([PI2], 2) + X, 2)");

e.parameter ["pi2"]= neuer Ausdruck ("pi * pi"); e.parameter ["x"]= 10;

e.eValuatParameter += Delegat (String Name, Parameterargs Args) { if (Name=="pi") Args.Result= 3.14; };

debug.assert (117.07== E.Valuate ());

es behandelt auch Unicode & viele Datentypen nativ. Es wird mit einer Geweih-Datei geliefert, wenn Sie den Grammer ändern möchten. Es gibt auch eine Gabel, die MEF unterstützt, um neue Funktionen zu laden.

Es unterstützt auch logische Bediener, Datums- / Uhrzeit-Saiten und wenn Anweisungen.

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