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

gra*_*bot 6 c# f#

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

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

Bri*_*ian 14

F#组件设计指南旨在回答正是这个问题的文件.


wsa*_*lle 5

确保你不暴露任何F#类型,特别是列表,地图等(暴露某种类型Microsoft.FSharp.Collections.FSharpMap肯定会让C#团队疯狂).当你暴露一个F#集合的getter或return类型时,调用List.toSeq你最终会得到一个IEnumerable,这在C#中更好用.

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