【问题标题】:Accessing an F# Map from inside C# code从 C# 代码内部访问 F# Map
【发布时间】:2012-01-21 07:00:14
【问题描述】:

有什么简单的方法可以从 C# 代码中访问 F# Map?

我的意思是,C# 和 F# 列表都是可枚举的,因此我可以通过该接口从 C# 代码内部迭代 F# 列表,就像在 post 中解释的那样。

假设我在名为 module.fs 的 F# 模块中声明了这样一个 Map:

let MyMap : Map<string,T>>

我想以这种方式从 C# 内部访问地图:

Map m = module.MyMap;

是否可以在不执行转换的情况下执行此类操作?

【问题讨论】:

    标签: c# f# map


    【解决方案1】:

    Map 在 F# 外部访问时称为 FSharpMap。您可以使用 var 来避免笨拙的类型名称(在您的示例中)。但是,大多数特定于 F# 的类型都实现了可以很好地跨语言边界运行的接口。例如,Map 实现了IDictionary&lt;_,_&gt;。在将在 F# 之外使用的 API 中,推荐的解决方案是公开这些接口。

    查看Component Design Guidelines 了解更多建议。

    话虽如此,您可以毫无问题地使用 C# 中的FSharpMap。它只是看起来很奇怪,不适合惯用的 C# 代码。

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 2012-01-05
      • 2011-03-24
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多