[英]F# function to be used in c# library : delegate with byref type
[英]Building F# library to be used in C#
假設我有以下功能。
let rec fib n =
match n with
| 1 | 2 -> 1
| n -> fib(n-1) + fib(n-2)
如何將此代碼編譯為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);
}
}
dmcs /r:facto.dll testf.cs給了我tesetf.exe。
好吧,如果你將它放在Program.fs文件中,並將其編譯成一個庫 (帶有--target:library
),那么它將從C#出現
Program.fib(5)
另請參閱C#中的調用F#dll
但是,如果您計划將F#代碼公開給C#,則可能需要使用名稱空間和類型。 有關更多信息,請參閱F#組件設計指南 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.