f#错误类型'不兼容'X'

本文关键字:不兼容 错误 类型 | 更新日期: 2023-09-27 18:18:18

首先,我道歉。这篇文章可能有点太模糊了。我有一个问题,我不能重现在一个小的示例代码部分。我是这样做的:

f#应用程序使用c# DOM,从XML模式(xsd.exe)生成。

DOM的实例是在c#中创建的,并通过函数调用返回给f#应用程序。

实例(这里命名类型为'X')存储在f#记录中,如下所示:

type Something = { Dom : X option }

后面的代码是这样的:

match myRecord.Dom with
| Some(dom) -> CSharpCode.Save( dom, filepath )  // error: Type 'X' not compatible with type 'X'

基本上,我从c#中获得Dom实例并传递回去。在上面的最后一行中,我得到了标题中提到的错误消息:类型'X'与类型'X'不兼容。

我不知道我应该在我的简单示例程序中寻找什么,我试图重现这个,我从来没有遇到过这个错误。什么好主意吗?

f#错误类型'不兼容'X'

查看这个故障排除页面,短语"与类型不兼容"似乎是在数值上下文中使用的,而不是一般的类型匹配。

另一个猜测是,你的代码样本有CSharpCode.Save( dom, filepath ),但在f#函数参数是空白分隔,而不是逗号分隔,所以我希望CSharpCode.Save dom filepath。您的样本不是在构造一个dom, filepath的元组并试图将其传递给.Save吗?