首先,我道歉。这篇文章可能有点过于模糊。我有一个问题,我无法在一个小的示例代码部分重现。这是我的工作:
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”不兼容。
我不知道我应该寻找什么,因为在我尝试重现这个的简单示例程序中,我从未遇到过这个错误。有什么想法吗?
答案 0 :(得分:1)
查看此troubleshooting page,“与类型不兼容”这一短语似乎在数值上下文中使用,而不是一般类型匹配。
另一个猜测是你的代码示例有CSharpCode.Save( dom, filepath )
,但在F#函数参数中是以空格分隔而不是以逗号分隔,所以我希望CSharpCode.Save dom filepath
。您的示例不会构建dom, filepath
的元组并尝试将其传递给.Save
吗?