2009-08-26 24 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();