将参数传递给方法并读取 return 值?

Pass parameter to a method and read the return value?

有这个代码:

var code = "public class TestClass {" +
           "  public int HelloWorld(int num) {" +
           "    return 5 + num;" +
           "  }" +
           "}";

var script = CSharpScript.Create(code);
var x = (await script.RunAsync()).ReturnValue;

如何传递参数值、调用方法并读取 return 值?

继续另一个代码是最简单的。

var call = await script.ContinueWith<int>("new TestClass().HelloWorld(3)").RunAsync();
var x = call.ReturnValue;

顺便说一下,CSharpScript 是一个脚本引擎,不需要像普通 C# 程序那样拥有 class 和方法。您可以只使用 5 + num 作为脚本内容。

var code = "5 + num";
var numValue = 3;

var setParam = await CSharpScript.RunAsync("var num = " + numValue + ";");
var runCode = await setParam.ContinueWithAsync(code);
var x = runCode.ReturnValue;

有关完整示例,请查看 RoslynScript/Script.cs