相关疑难解决方法(0)

完全限定名称,带有导入声明的非限定名称解析不同

这有效

open System
let f = Action(fun () -> Unchecked.defaultof<_>)
Run Code Online (Sandbox Code Playgroud)

但是这个

let f = System.Action(fun () -> Unchecked.defaultof<_>)
Run Code Online (Sandbox Code Playgroud)

产生编译错误

存在多种类型,称为"动作",采用不同数量的通用参数.提供一种类型的实例来消除歧义的类型的分辨率,例如, '操作< ,,_, ,,_, ,,_>'.

我知道我可以通过添加一个类型参数占位符(System.Action<_>(...))来修复它,但是知道它们为什么表现不同?

编辑

在规范第14.1.9节中找到了这个:

F打开模块或名称空间声明组时,项目将添加到名称环境中,如下所示:

  • 将类型添加到TypeNames表.如果该类型有一个CLI-错位通用名称,如List'1再一个条目下都加ListList'1.

是否为完全限定类型(省略了类型参数)复制了此行为?它似乎不是这样.

f#

11
推荐指数
1
解决办法
557
查看次数

标签 统计

f# ×1