pro*_*eek 9 c# dll mono f# visual-studio-2010
假设我有以下功能.
let rec fib n =
match n with
| 1 | 2 -> 1
| n -> fib(n-1) + fib(n-2)
Run Code Online (Sandbox Code Playgroud)
如何将此代码编译为dll,以便从C#中使用它?
我同时使用mono(在Mac OS X中)和Visual Studio 2010.
我添加以下内容来创建命名空间.
namespace MyMath.Core module public Process=
和fsc --target:library facto.fs给了我facto.dll.
使用此代码的C#代码如下.
using System;
using MyMath.Core;
class TestFSharp {
public static void Main() {
int val = MyMath.Core.Process.fib(10);
Console.WriteLine(val);
}
}
Run Code Online (Sandbox Code Playgroud)
dmcs /r:facto.dll testf.cs给了我tesetf.exe.
Bri*_*ian 14
好吧,如果你把它放在Program.fs文件中,并将它编译成一个库(带--target:library),那么它将从C#出现
Program.fib(5)
Run Code Online (Sandbox Code Playgroud)
另请参阅C#中的调用F#dll
但是,如果您计划将F#代码公开给C#,则可能需要使用名称空间和类型.有关更多信息,请参阅F#组件设计指南.
| 归档时间: |
|
| 查看次数: |
4268 次 |
| 最近记录: |