قد لا يكون الأصدقاء الذين يعرفون JavaScript غير مألوفين بوظيفة eval (). يمكننا استخدامه لتنفيذ تنفيذ التعليمات البرمجية الديناميكية. حتى أنني كتبت صفحة ويب تستخدم خصيصًا لحساب التعبيرات الحسابية. قدرة الحساب أفضل من قدرة حاسبة Google و Baidu ، على الأقل بدقة أعلى. ومع ذلك ، إذا تجاوزت العمليات الأربع العمليات الأربع ، فسيكون شكل التعبير معقدًا للغاية ، مثل المثال الذي قدمه Baidu:
LOG ((5+5)^2) -3+PI يجب أن تُكتب كـ Math.log (Math.Pow (5+5،2))*Math.log10e-3+Math.pi لاستخدامها في الحسابات مع Eval. لم أفكر في حل مثالي لهذا. حسنًا ، ليس هذا هو الموضوع الرئيسي لهذه المقالة ، دعنا ندعها تذهب.
لقد رأيت الأشخاص يستخدمون الكود التالي في حديقة المدونة ، على الأقل من حيث نموذج الرمز ، إنه بسيط للغاية:
// csc.exe noname1.cs /r:/windows/microsoft.net/framework/v1.1.4322/microsoft.jscript.dll // ملاحظة: هناك حاجة إلى إضافة مساحتين من microsoft.jscript و microsoft.vsa. الفئة العامة class1 {static void main (string [] args) {system.console.writeline ("Hello World") ؛ string expression = "var result: int = 0 ؛ result == 1؟/" success/":/" fans/"" ؛ microsoft.jscript.vsa.vsaengine ve = microsoft.jscript.vsa.vsaengine.createengine () ؛ console.writeline (microsoft.jscript.eval.jscriptevaluate (التعبير ، VE)) ؛ }}ومع ذلك ، من غير السار أن بيئة التجميع تعطي الآن التحذير التالي: "Microsoft.jscript.vsa.vsaengine" عفا عليها الزمن: "لا ينصح استخدام هذا النوع لأنه يتم إهماله في Visual Studio 2005 ؛ لن يكون هناك بديل لهذه الميزة. يرجى الاطلاع على وثائق icodecompiler للحصول على مساعدة إضافية. بالطبع ، يمكن تجميع الكود وتنفيذها بشكل طبيعي.
أدناه سأعطي طريقة أخرى لاستخدام وظيفة Eval JavaScript مباشرة. بمساعدة مكون COM ، فإن المسار المرجعي هو ٪ systemroot ٪/system32/msscript.ocx ، وسأقوم بنشر الكود الكامل مباشرة.
باستخدام النظام ؛ باستخدام system.collections.generic ؛ باستخدام system.text ؛ باستخدام system.diagnostics ؛ مساحة الاسم scriptProgramming {class program {static void main (string [] args) {String strexpression = "1+2*3" ؛ سلسلة strresult = eval (strexpression) ؛ console.writeline (strexpression + "=" + strresult) ؛ console.writeline ("اضغط على أي مفتاح للمتابعة.") ؛ console.ReadKey () ؛ } /// <summary> /// المرجعية COM COMPONENT COMPONTION Microsoft Script Control /// ٪ SystemRoot ٪/System32/msscript.ocx /// يتم استخدام هذه الوظيفة لتنفيذ الكود ديناميكيًا /// </summary> // <param name = "expression"> </param> /// حاول {msscriptControl.scriptControlClass JScript = جديد msscriptControl.scriptContRolclass () ؛ jscript.language = "jscript" ؛ strresult = jscript.eval (التعبير) .ToString () ؛ } catch (استثناء ex) {debug.fail (ex.message) ؛ } إرجاع strresult ؛ }}}التفسير التفصيلي أعلاه لتنفيذ الرمز الديناميكي (EVAL OF JS) هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.