是否可以以这样的方式从C#调用带有委托参数的IronRuby方法,使得 yield
起作用?
以下代码会引发“参数个数不正确(应为 0)”异常。
Action<string> action = Console.WriteLine;
var runtime = Ruby.CreateRuntime();
var engine = runtime.GetEngine("rb");
engine.Execute(@"
class YieldTest
def test
yield 'From IronRuby'
end
end
");
object test = engine.Runtime.Globals.GetVariable("YieldTest");
dynamic t = engine.Operations.CreateInstance(test);
t.test(action);