F#库在使用时应该表现得像C#

时间:2010-12-09 17:25:46

标签: c# f#

我正在使用C#开发一个F#库供另一个团队使用。我应该注意哪些事情知道其他团队希望这个库的行为与任何其他C#库一样?

例如,如果我使用Options类型,当我向C#公开时,我需要将它们转换为null。其他一些可能的过渡区域可能是计算表达式,FastFunc,事件和命名问题。

2 个答案:

答案 0 :(得分:14)

F# Component Design Guidelines是一份旨在回答这个问题的文件。

答案 1 :(得分:5)

确保不暴露任何F#类型,特别是列表,地图等(暴露类型为Microsoft.FSharp.Collections.FSharpMap的东西肯定会让C#团队疯狂)。当您公开一个F#集合的getter或者返回类型时,请调用List.toSeq,最后会得到一个IEnumerable,这在C#中更好用。

除此之外,你应该没问题。我之前只在一个项目中使用了F#和C#,这是我唯一真正的问题/烦恼,使两者互操作。