Petua untuk menilai secara dinamik ungkapan C# pada masa jalan
Dalam pembangunan perisian, kadangkala perlu untuk menilai secara dinamik ungkapan C# pada masa jalan. Artikel ini akan menyediakan penyelesaian yang moden dan cekap.
Pendekatan tradisional biasanya menggunakan CSharpCodeProvider
untuk menyusun dan melaksanakan ungkapan, tetapi pendekatan ini sudah lapuk dan tidak lagi mematuhi amalan terbaik C# moden.
Pendekatan yang lebih baik ialah menggunakan API Skrip Roslyn. API menyediakan enjin khusus untuk menilai skrip dan ungkapan C# secara dinamik, memudahkan proses penilaian ungkapan:
<code class="language-csharp">using Microsoft.CodeAnalysis.CSharp.Scripting; var result = CSharpScript.EvaluateAsync("1 + 3").Result;</code>
Contoh ini menilai ungkapan "1 3" dan memberikan hasil kepada pembolehubah result
. Untuk menilai serpihan kod dengan jenis data tertentu, anda boleh menggunakan kaedah generik yang sepadan:
<code class="language-csharp">var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;</code>
API skrip Roslyn juga menyokong parameter lulus, mengurus ruang nama dan mengendalikan senario yang lebih kompleks. Untuk maklumat lanjut, sila rujuk dokumentasi rasmi: https://www.php.cn/link/150353f887435acbf6ef0a57e4a3dbca
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menilai Ungkapan C# Secara Dinamik pada Runtime Menggunakan Roslyn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!