首先,我很抱歉。这篇文章可能有点太模糊了。我有一个问题,我无法在一个小示例代码部分重现。这是我所做的:
F# 应用程序使用从 XML 架构 (xsd.exe) 生成的 C# DOM。
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 实例并将其传回。在上面的最后一行中,我收到标题中提到的错误消息:Type 'X' is not compatible with type 'X'。
我不知道我应该寻找什么,因为在我尝试重现这个的简单示例程序中,我从未遇到过这个错误。有什么想法吗?
最佳答案
看着这个troubleshooting page ,短语“与类型不兼容”似乎是在数值的上下文中使用的,而不是一般的类型匹配。
另一个猜测是您的代码示例具有 CSharpCode.Save( dom, filepath )
,但在 F# 函数中参数是空格分隔的而不是逗号分隔的,所以我希望 CSharpCode.Save dom 文件路径
。您的示例不会构建一个 dom, filepath
的元组并尝试将其传递给 .Save
吗?
关于c# - F# 错误类型 'X' 与类型 'X' 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107877/