8

首先,我很抱歉。这个帖子可能有点太模糊了。我有一个问题,我无法在一个小的示例代码部分中重现。这是我所做的:

F# 应用程序使用从 XML 架构 (xsd.exe) 生成的 C# DOM。

DOM 的实例在 C# 中创建并通过函数调用返回给 F# 应用程序。

实例(此处命名类型为“X”)存储到 af# 记录中,如下所示:

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 实例并将其传回。在上面的最后一行,我得到了标题中提到的错误信息:Type 'X' is not compatible with type 'X'。

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

4

1 回答 1

1

查看此故障排除页面,短语“与类型不兼容”似乎用于数值的上下文中,而不是一般的类型匹配。

另一个猜测是您的代码示例有CSharpCode.Save( dom, filepath ),但在 F# 函数参数中是空格分隔而不是逗号分隔,所以我本来期望CSharpCode.Save dom filepath. 您的样本不会构建一个元组dom, filepath并尝试将其传递给.Save吗?

于 2013-06-27T08:57:15.720 回答