首頁 > 後端開發 > C++ > 如何在c#中獲得動態代碼評估,例如javaScript的`eval()'?

如何在c#中獲得動態代碼評估,例如javaScript的`eval()'?

Barbara Streisand
發布: 2025-01-28 05:51:09
原創
435 人瀏覽過

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

在C#中實現動態代碼執行

本文探討如何在C#中動態執行代碼,類似於JavaScript中eval()的功能。

問題描述

假設你有一個整數變量i和多個名為“Property1”、“Property2”、“Property3”等的屬性。根據i的值,你希望對相應的“Propertyi”屬性執行操作。在JavaScript中使用eval()可以輕鬆完成此任務,但在C#中如何實現呢?

使用Roslyn腳本API的解決方案

Roslyn腳本API提供了一種在C#中進行動態代碼評估的解決方案。它包含一組類,允許你在運行時執行C#代碼。

示例代碼

要評估簡單的表達式,請使用EvaluateAsync()方法:

// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)"); // 返回16
登入後複製

對於更複雜的代碼,可以使用RunAsync()方法:

var script = await CSharpScript.RunAsync(@"
class MyClass
{ 
    public void Print() => System.Console.WriteLine(1);
}");
登入後複製

然後,你可以通過調用ContinueWithAsync()繼續執行代碼:

await script.ContinueWithAsync("new MyClass().Print();");
登入後複製

這允許你動態地執行C#代碼並與生成的對象進行交互。

以上是如何在c#中獲得動態代碼評估,例如javaScript的`eval()'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板