0

我有一个表达式,例如"(((2+5)*1000)/((30-20)*7))"如何使用 C# 中的 IronJS 评估表达式。预期结果是 100。

我尝试了如何动态评估 C# 表达式?它以这些方式工作。很好。

我还研究了@Rudolf_Abel@Jeno Laszlo提出的解决方案,在评论中提到 IronJS 是一个更好的选择。

现在我正在尝试使用 IronJS。有可能吗。如何?我已经阅读了一些关于 IronJs 的文章(例如,这里有一篇),但无法满足要求。

注意~这是为了我自己的利益,我正在做这个实验。

4

2 回答 2

1

这是IronJS 源代码中的一个示例,这是另一个示例。

因此,您的代码将是这样的:

private static void Run()
{
        var ctx = new IronJS.Hosting.CSharp.Context();

        dynamic a = ctx.Execute("var a = (((2+5)*1000)/((30-20)*7)); a;");
        Console.WriteLine(a);
}

PS 至于我,我更喜欢使用 C# 脚本 API。稳定版将与 VS2015 update1(即将推出)一起发布,并且夜间构建状况良好,我对它们没有任何问题。

开始编码所需的一切:小介绍nuget 包。祝你好运!:)

于 2015-11-13T06:30:21.170 回答
1

我不知道这是否会有所帮助,但请尝试一下。

IronJS.Hosting.Context jsContext;
jsContext = IronJS.Hosting.Context.Create();
jsContext.Execute("(function(){return eval('(((2+5)*1000)/((30-20)*7))');})()");
于 2015-11-13T06:44:05.073 回答