Aufruf einer F # -Funktion von C #

7

Ich habe mir andere Anweisungen angesehen und habe immer noch keine Ahnung, wie ich das machen soll. Ich habe zwei Projekte (Rechner in C # und Logik in F #). Ich habe einen Verweis auf Logic in Calculator hinzugefügt, sowie einen Verweis auf FSharp.Core

Aber wenn ich die Zeile hinzufügen

%Vor%

In meinem C # -Projekt wird ein Fehler angezeigt, der besagt:

  

"Der Name Logic existiert im aktuellen Kontext nicht."

Es gibt ein Modul Logik im Logikprojekt, also sollte es richtig angezeigt werden? Was fehlt mir noch?

EDIT: Hier ist die Funktionsdefinition ...

%Vor%     
SwiftCore 08.12.2013, 05:02
quelle

1 Antwort

18

Sie können von C # nicht nur auf ein F # -Modul ohne Namespace verweisen. Tun Sie etwas wie folgt:

%Vor%

oder gleichwertig

%Vor%

und

%Vor%

und Referenz F # Projekt von C # Projekt.

UPDATE : Wie JackP aufgezeigt hat, gibt es die andere Alternative, die es erlaubt Vermeiden Sie die Verwendung von expliziten Namespaces auf F # -Seite insgesamt.

Wenn Sie in C # eine Klasse außerhalb eines beliebigen Namespace erstellen, kann auf diese Klasse verwiesen werden, indem Sie den Namen mit global kontextuellem Schlüsselwort gefolgt von :: operator vorsetzen. Auf diese Weise wird Standard-Namespace der obersten Ebene . F # -Modul mit einem einfachen Namen außerhalb eines beliebigen Namespace vom Referenzstandpunkt aus entspricht einem namespace global in der ersten Zeile des Codes. Wenn Sie diese Erwägung auf Ihren Fall anwenden, können Sie alternativ Folgendes tun:

%Vor%

Gore Details über global:: verfügbar auf MSDN .

    
Gene Belitski 08.12.2013, 06:26
quelle

Tags und Links