拥有此代码:
var code = "public class TestClass {" +
" public int HelloWorld(int num) {" +
" return 5 + num;" +
" }" +
"}";
var script = CSharpScript.Create(code);
var x = (await script.RunAsync()).ReturnValue;
如何传递参数的值,调用方法并读取返回值?
答案 0 :(得分:1)
继续使用另一个代码是最简单的。
var call = await script.ContinueWith<int>("new TestClass().HelloWorld(3)").RunAsync();
var x = call.ReturnValue;
顺便说一下,CSharpScript
是一个脚本引擎,它不需要像普通的C#程序那样拥有类和方法。您可以使用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