我希望能够在C#和F#中编写程序。我有一些部分类,我想在其中定义一些F#方法。但是我遇到了一个问题:部分类不能跨越两个DLL。有没有办法将它们合并?我希望使用免费的解决方案,并且能够在正常构建过程中自动完成。
我希望能够在C#和F#中编写程序。我有一些部分类,我想在其中定义一些F#方法。但是我遇到了一个问题:部分类不能跨越两个DLL。有没有办法将它们合并?我希望使用免费的解决方案,并且能够在正常构建过程中自动完成。
您不能将类的不同部分用不同的语言编写。
您想做什么?
您可以在一个单独的F#库中公开方法,然后从C#类中调用这些方法。
然后,您可以使用ILMerge将两个程序集合并。
// C# part
partial class Foo {
private int csharpField;
int Bar() { return FSharpMethod(); }
}
// F# part
type Foo =
member x.FSharpMethod() = x.csharpField
FSharpMethod
是否存在以及它的类型是什么。F#编译器也无法编译代码,因为它不知道csharpField
的类型(以及它是否存在)。