我的问题与这个问题有些相关 - 具有通用参数类型的函数 - 但我无法弄清楚如何做我想要的事情.
我想定义一个'后代函数来包含对各种C#类的'Descendants'的调用,如下所示:
让后代名称(xDocument:XDocument)= xDocument.Descendants名称
让后代命名(xElement:XElement)= xElement.Descendants name
这种方法不起作用,因为我们有'后代'的重复定义.
我认为可以使用内联函数和静态解析参数来定义以下方法来代替:
let inline descendants name (xml : ^x when ^x : (member Descendants : XName -> seq<XElement>)) =
xml.Descendants name
Run Code Online (Sandbox Code Playgroud)
但是在尝试这样做时我遇到了这个错误:
根据此程序点之前的信息查找不确定类型的对象.在此程序点之前可能需要类型注释来约束对象的类型.这可以允许解析查找.
有没有办法可以写第二个功能来做我想做的事情?
f# ×1