簡體   English   中英

構建要在C#中使用的F#庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM