F#错误类型'X'与类型'X'不兼容

时间:2013-06-14 11:52:50

标签: c# f#

首先,我道歉。这篇文章可能有点过于模糊。我有一个问题,我无法在一个小的示例代码部分重现。这是我的工作:

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

DOM的实例是在C#中创建的,并从函数调用返回到F#应用程序。

实例(此处命名为type为'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”不兼容。

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

1 个答案:

答案 0 :(得分:1)

查看此troubleshooting page,“与类型不兼容”这一短语似乎在数值上下文中使用,而不是一般类型匹配。

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