Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mencapai penilaian kod dinamik dalam c# seperti `eval ()` `?

Bagaimanakah saya dapat mencapai penilaian kod dinamik dalam c# seperti `eval ()` `?

Barbara Streisand
Barbara Streisandasal
2025-01-28 05:51:09437semak imbas

How Can I Achieve Dynamic Code Evaluation in C# Like JavaScript's `eval()`?

Melaksanakan pelaksanaan kod dinamik dalam C#

Artikel ini membincangkan cara melaksanakan kod secara dinamik dalam C#, sama dengan fungsi

dalam JavaScript.

eval() Penerangan Masalah

Katakan anda mempunyai pembolehubah integer dan pelbagai atribut yang dipanggil "Property1", "Property2", "Property3" dan atribut lain. Menurut nilai , anda ingin melakukan operasi pada atribut "harta

i " yang sepadan. Gunakan

dalam JavaScript untuk menyelesaikan tugas ini dengan mudah, tetapi bagaimana untuk mencapainya di C#? i i Penyelesaian Menggunakan Roslyn Script Api eval() Roslyn Script API menyediakan penyelesaian untuk penilaian kod dinamik di C#. Ia mengandungi satu set kelas yang membolehkan anda melaksanakan kod C#semasa runtime.

kod sampel

untuk menilai ekspresi mudah, gunakan

kaedah:

Untuk kod yang lebih rumit, anda boleh menggunakan kaedah:

EvaluateAsync() maka anda boleh menghubungi

terus melaksanakan kod:
<code class="language-csharp">// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)"); // 返回16</code>

RunAsync() Ini membolehkan anda melaksanakan kod C#dan berinteraksi dengan objek yang dihasilkan secara dinamik.

Atas ialah kandungan terperinci Bagaimanakah saya dapat mencapai penilaian kod dinamik dalam c# seperti `eval ()` `?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn