F# DLL -> C# Krótki tutorial o tym, jak wykorzystać kod napisany w F# w C#
Krok pierwszy. Utwórz projekt “F# Library Project”. Nazwij go przykładowo “FsharpTestDLL”.
Do prezentacji dodajmy jakiś kod w F#.
namespace FSharpTestDLL
[<AbstractClass>]
type Animal() =
abstract member MakeNoise: unit -> unit
type Dog() =
inherit Animal()
override this.MakeNoise () = printfn "woof"
module Math =
let square x = x * x
let sumOfSquares n =
[1..n]
|> List.map square
|> List.sum
Utworzyliśmy klasę abstrakcyjną Animal oraz jej implementacje klasę Dog. Na końcu także napisaliśmy moduł, który będzie liczył sumę kwadratów.
Teraz zbuduj (build) projekt (F6). Powinna zostać utworzona dll-ka w folderze bin\debug.
Następnie utwórz projekt konsolowy w języku C#
Dodaj referencję do projektu F# oraz dodaj następujący kod do aplikacja konsolowej C#.
using System;
using FSharpTestDLL;
namespace CSharpConsoleFSharpDLLTest
{
class Program
{
static void Main(string[] args)
{
var d = new Dog();
var c = new Cat();
c.MakeNoise();
d.MakeNoise();
Console.ReadKey();
var sum = FSharpTestDLL.Math.sumOfSquares(200);
Console.WriteLine(sum);
Console.ReadKey();
}
}
class Cat : Animal
{
public override void MakeNoise()
{
Console.WriteLine("Meow");
}
}
}
Jak widać możemy dziedziczyć po abstrakcyjnej klasie utworzonej w F#. Możemy także w łatwy sposób napisać algorytmy liczące w F# i użyć ich później w C#.
Miłego programowania w F#.