在C#库中无法识别在F#库中声明的“坐标”类型:
我已经执行了以下步骤:
完成上述步骤后,我的C#项目仍然没有在F#项目中获取最新的类型声明。
此外,我已经反复删除F#项目引用并将其重新添加到C#项目中。
版本:VS2019 Preview 3.0
答案 0 :(得分:5)
似乎问题在于您的坐标是一个命名元组,并且没有为其生成任何实际的类。
如果您尝试反汇编您引用的库,则它将看起来像这样:
According to MSDN,与元组互操作足以使用/返回C#元组。
因此,您可以在代码中使用C#元组创建坐标列表:
var coordinates = new List<(Test.Latitude, Test.Longitude)>();
答案 1 :(得分:3)
您定义Coordinate
的方式:
type Coordinate = Latitude * Longitude
是一个type abbreviation,它引用了Latitude
和Longitude
的元组。
此类型缩写不是真实类型,它是另一种类型的另一个名称,缩写或别名。在定义它的F#程序集之外的所有内容都看不到类型缩写。它不是F#程序集中的实型。