我是F#的新手,我开始在OpenGL之上编写函数包装。我还打算用它来编写图形引擎,该引擎应与所有.Net语言互操作。

但是很难找到有关F#中的哪些代码构造不符合CLS的信息。

例如,我已经知道一些不符合CLS的情况:

  • 静态类型限制
  • 元组函数
  • 可能是'T list and Seq
  • 甚至联合类型

  • 我怎么知道F#的哪些功能不符合CLS?

    最佳答案

    使用CLSCompliant attribute。它将确保您的代码在编译时符合CLS。

    像这样:

    module myProject.AssemblyInfo
    
    open System
    
    [<assembly: CLSCompliant(true)>]
    
    do()
    

    资料来源:Mike-Ward.Net: Learning F#–Assembly Level Attributes

    有关CLSCompliant属性的更完整讨论,请参见C# Corner: Making Your Code CLS Compliant

    10-05 22:48