C#、F#、IronPython和IronRuby的集成
我被告知,由C#和F#源代码生成的程序集文件在编译到.NET程序集中时是可互操作的C#、F#、IronPython和IronRuby的集成,c#,.net,f#,ironpython,ironruby,C#,.net,F#,Ironpython,Ironruby,我被告知,由C#和F#源代码生成的程序集文件在编译到.NET程序集中时是可互操作的 问题1:这是否意味着C可以像调用C函数一样调用F函数 问题2:IronPython和IronRuby怎么样?我没有从IronPython/IronRuby中看到任何程序集dll 问题3:有什么简单的方法可以从C#或F#使用IronPython/IronRuby函数吗 任何示例代码都会很好 有人告诉我,汇编文件 由C和F制成。来源是 可在编译时进行互操作 进入.NET程序集 是的,您可以在C#one中引用F#a
- 问题1:这是否意味着C可以像调用C函数一样调用F函数
- 问题2:IronPython和IronRuby怎么样?我没有从IronPython/IronRuby中看到任何程序集dll李>
- 问题3:有什么简单的方法可以从C#或F#使用IronPython/IronRuby函数吗
open SampleApp
SampleApp.Program.Main([| "Hello"; "World" |])
2) 对于DLR,我认为情况有点不同。我相信这就是执行Python的方式(例如)
我的语法可能有点不对劲,但你应该能够理解要点
3) 您需要下载一些特殊的DLR DLL,然后在C#/F#应用程序中引用它们,以实现互操作。它们应该可以从Microsoft DLR站点获得
问题3:有什么简单的方法可以从C#或F#使用IronPython/IronRuby函数吗
你可以看看
基本上,它的作用(简化代码):
var-engine=Python.CreateEngine();
var scriptSource=engine.CreateScriptSourceFromString(@)
食物环境徖生署:
打印“s”,SourceCodeKind.Statements);
var scope=engine.CreateScope();
scriptSource.Execute(范围);
//获取对函数的引用
Func foo=scope.GetVariable(“foo”);
//执行它
控制台写入线(foo(“a”);
ScriptEngine engine = Python.CreateEngine();
ScriptSource script = engine.CreateScriptFromSourceFile("myPythonScript.py");
ScriptScope scope = engine.CreateScope();
script.Execute(scope);
var engine = Python.CreateEngine();
var scriptSource = engine.CreateScriptSourceFromString(@"
def foo(s):
print s", SourceCodeKind.Statements);
var scope = engine.CreateScope();
scriptSource.Execute(scope);
//Get a reference to the function
Func<string, decimal> foo = scope.GetVariable<Func<string, decimal>>("foo");
//Execute it
Console.WriteLine(foo("a"));