gpt4 book ai didi

c# - 如何动态评估 C# 代码?

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:25 27 4
gpt4 key购买 nike

我可以执行 eval("something()"); 以在 JavaScript 中动态执行代码。有没有办法让我在 C# 中做同样的事情?

我正在尝试做的一个例子是:我有一个整数变量(比如 i)并且我有多个属性的名称:“Property1”、“Property2”、“Property3” , ETC。现在,我想根据 i 的值对“Propertyi”属性执行一些操作。

这对于 Javascript 来说真的很简单。有什么方法可以用 C# 做到这一点吗?

最佳答案

使用 Roslyn 脚本 API(更多 samples here):

// add NuGet package 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)") // returns 16

您还可以运行任何一段代码:

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

并引用之前运行生成的代码:

await script.ContinueWithAsync("new MyClass().Print();");

关于c# - 如何动态评估 C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449469/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com