3

我正在设计一个 .NET API 以允许开发人员为3D 模拟足球联赛创建 RoboCup 代理。

我对 API 如何与 C# 代码一起工作感到非常满意,但是我想使用这个项目来提高我的 F# 技能(目前基于阅读而不是练习)。

所以我想问一下,在设计一个供 C# 和 F# 代码使用的 API 时,我应该考虑哪些事情。

一些点。

  • 我相当大量地使用矩阵和向量数学。这些是当前不可变的类/结构。
  • API 目前定义了一些与消费者实现的接口(例如:)IAgent,使用它们的实现实例(例如:)MyAgent来构造其他 API 类(例如:)new Client(myAgent)
  • API 触发事件。
  • API 公开了一些委托类型。
  • API 包括几个枚举。

我想尽快发布 API 的一个版本,并且如果我意识到从 F# 使用它太难的话,我不想在以后对其进行重大更改。任何建议表示赞赏。

4

1 回答 1

3

最好的建议可能是尝试使用 F# 中的 API。:)

就是说,我认为你所拥有的听起来不错

  • 任何好的 C# API 都应该是非常好的 F# API
  • Func在边界处使用代表//时会有一点摩擦Action,但这里没有什么可以改变的
  • 枚举、事件、接口、类、结构都很好
  • 如果可能,请避免返回通常被忽略的值的 API(例如,“返回 this”以能够“链接调用”的流畅接口 - 这些导致 F# 需要大量|>ignores)

但实际上,花一个小时尝试编写库的 F# 使用者。十有八九,在最坏的情况下,您可能会建议 F# 的一些辅助函数或扩展方法来平滑界面边界处的任何摩擦点,但我认为您所拥有的一切都应该没问题。

于 2010-06-07T17:30:02.903 回答