Freunde, die mit JavaScript vertraut sind, sind mit der Funktion eval () möglicherweise nicht nicht vertraut. Wir können es verwenden, um die Ausführung von dynamischem Code zu implementieren. Ich habe sogar eine Webseite geschrieben, die speziell zur Berechnung der arithmetischen Ausdrücke verwendet wird. Die Berechnungsfähigkeit ist besser als die von Google und Baidu -Taschenrechnern, zumindest mit höherer Genauigkeit. Wenn die vier Operationen jedoch die vier Operationen überschreiten, ist die Form des Ausdrucks sehr kompliziert, wie das von Baidu angegebene Beispiel:
log ((5+5)^2) -3+pi muss als math.log (math.pow (5+5,2)) geschrieben werden. Ich habe nicht an eine ideale Lösung dafür gedacht. OK, dies ist nicht das Hauptthema dieses Artikels, lassen Sie es einfach los.
Ich habe gesehen, wie Leute den folgenden Code im Blog Park verwendet haben, zumindest in Bezug auf das Codeform, ist es recht einfach:
// csc.exe noname1.cs /r:c:/windows/microsoft.net/framework/v1.1.4322/microsoft.jscript.dll // Hinweis: Zwei Namespaces von Microsoft.jscript und Microsoft.vsa müssen hinzugefügt werden. public class class1 {static void main (String [] args) {System.Console.WriteLine ("Hello World"); String Expression = "var result: int = 0; result == 1?/" Erfolg/":/" fehlgeschlagen/""; Microsoft.jscript.vsa.vsaengine ve = microsoft.jscript.vsa.vsaengine.createengine (); Console.writeLine (microsoft.jscript.eval.jscriptevaluate (Ausdruck, ve)); }}Es ist jedoch unangenehm, dass die Kompilierungsumgebung jetzt die folgende Warnung angibt: 'microsoft.jscript.vsa.vsaEngine' ist veraltet: 'Die Verwendung dieses Typs wird nicht empfohlen, da sie in Visual Studio 2005 veraltet wird. Für diese Funktion wird es keinen Ersatz geben. Weitere Hilfe finden Sie in der IcodeCompiler -Dokumentation. ' Natürlich kann der Code normal zusammengestellt und ausgeführt werden.
Im Folgenden werde ich eine andere Methode zur direkten Verwendung von JavaScripts Eval -Funktion geben. Mit Hilfe der COM -Komponente ist der Referenzpfad %SystemRoot %/System32/msscript.ocx und ich werde den vollständigen Code direkt veröffentlichen.
Verwenden von System; Verwendung von System.Collectionss.generic; Verwendung von System.Text; Verwenden von System.Diagnostics; Namespace scriptprogramming {Klasse Programm {static void main (String [] args) {String Strexpression = "1+2*3"; String Strresult = eval (Strexpression); Console.writeLine (Strexpression + "=" + Strresult); Console.writeLine ("Drücken Sie eine beliebige Taste, um fortzufahren."); Console.readkey (); } /// <summary> /// Referenzkomponente Microsoft Skript Control /// %systemRoot %/system32/msscript.ocx //. Diese Funktion wird verwendet, um den Code dynamisch auszuführen /// </summary> // <param name = "expression"> </// <Ctrains> </returns> public statatic eval (Zeichenfolge) {String -String) {String Strresult; try {msscriptControl.scriptControlClass jscript = newscriptControl.scriptControlClass (); jscript.language = "jscript"; Strresult = jscript.eval (Expression) .ToString (); } catch (Ausnahme ex) {debug.fail (ex.Message); } return Strresult; }}}Die obige detaillierte Erläuterung der Beispiele für dynamische Codeausführung (Eval of JS) ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.