【问题标题】:Get description of types in F# Interactive?获取 F# Interactive 中类型的描述?
【发布时间】:2010-06-29 15:15:53
【问题描述】:

我可以获取 F# 交互工具 FSI.exe 来为我描述一种类型吗?换句话说,我知道如何访问一种类型(特别是 Infer.NET 库中的 IExpression),但我不知道它提供了哪些方法。我希望我可以使用 fsi 来获取可用方法、属性等的描述。

这可以做到吗,或者有更好的方法吗?可悲的是,我没有 Visual Studio,这是我用来获取这些信息的方式...

谢谢, 内尔斯

【问题讨论】:

    标签: f# types f#-interactive


    【解决方案1】:

    这取决于您所说的“描述”是什么意思,以及您正在寻找的流程自动化程度。使用 .NET 反射库来确定类型具有哪些公共方法非常容易。例如:

    typeof<System.String>.GetMethods()
    

    将为您提供一个包含MethodInfos 的数组,用于String 类上的所有公共方法。您可以对任何其他类型执行完全相同的操作。

    您可以编写一个简单的方法来简化流程:

    let showMethods(t:System.Type) =
      t.GetMethods() |> Seq.iter (printfn "%A")
    

    【讨论】:

    • 谢谢!这基本上是我一直在寻找的。您可能知道,存在类似的方法,例如 GetFields() 和 GetProperties()。
    • (很抱歉另一个建议 VS 的答案 - 我错过了你没有它的部分)。缺少 VS 的另一个有用工具是 Reflector:red-gate.com/products/reflector - 它为您提供了一个很好的 UI 来浏览程序集中的类型
    猜你喜欢
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多