小编Moh*_*adi的帖子

静态分辨的类型参数

以下(简化)代码段取自我正在实现的应用程序,该应用程序始终使用静态解析的类型参数.

type A< ^B when ^B : (static member MyMember : Unit -> Unit)> = {
  Field : unit
}
type TestA = {
  AField : A< BTy >
}
and BTy = {
  BField : Unit
} with
  static member MyMember () = ()
Run Code Online (Sandbox Code Playgroud)

当我定义字段AField(AField : A< BTy >)的类型时,IntelliSense给出了以下错误:类型'BTy'不支持任何名为'MyMember'的运算符.

编辑.单独声明它们是有效的,但如果我有一个共同引用,我不能声明第三种类型放在顶部,其中包含两种类型的公共信息.我该怎么做才能避免这个问题?无论如何,如果我在下面定义let pluto = ("" :> obj) :?> A< BTy >它的定义,我想是因为这两种类型都是从let绑定中可见的.

parameters f# types

5
推荐指数
2
解决办法
1365
查看次数

标签 统计

f# ×1

parameters ×1

types ×1