在F#中编写符合CLS的代码

Mai*_*ein 7 f#

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

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

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

  • 静态类型约束
  • 无元组功能
  • 大概 'T list and Seq
  • 甚至可能是工会类型

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

JDB*_*JDB 7

使用CLSCompliant属性.它将保证您的代码在编译时符合CLS.

像这样:

module myProject.AssemblyInfo

open System

[<assembly: CLSCompliant(true)>]

do()
Run Code Online (Sandbox Code Playgroud)

来源:Mike-Ward.Net:学习F# - 组装级别属性

有关CLSCompliant属性的更完整讨论,请参阅C#角:使您的代码符合CLS