2009-08-26 72 views
3

看來我不能調用從C#和/或VB.Net F#中創建一個虛擬函數在Visual Studio 2010測試版1呼叫VB中的一個F#函數(或C#或其他)

大多數引用Google解決了老版本的Visual Studio和C#C#中出現的問題。

如果有人可以發佈一個小howto,它會搖滾。提前致謝。

回答

5

F#:

// in Program.fs, last file in project 
let Foo() = 
    printfn "Hello from F#" 

C#:

Program.Foo(); 
+0

感謝您的回答。我發現我遇到了F#命名空間,模塊和引用F#項目的問題。 – ymihere 2009-08-27 10:11:11

-1

您需要通過encapsulating it in a type將F#代碼公開給其他呼叫者。

+0

-1。這是實現它的一種方式,但它不是_needed_:在頂層定義的函數暴露爲與封閉模塊名稱相同的類上的公共靜態成員。 – 2009-08-26 18:17:36

3

F#:

namespace MyFSharpCode 

type MyType() = 
    static member Foo() = 
     printfn "Hello from F#" 

C#:

MyFSharpCode.MyType.Foo();