f# - typeof <'x' > 结果为 "Type inference caused the type variable x to escape its scope"

标签 f#

“类型推断导致类型变量 x 逃逸其作用域”是什么意思?在这种情况下错误意味着什么?我正在尝试通过属性使其“转义”。我应该更改什么才能成功获取 'x 类型变量的 Type 实例?我尝试了 dotnet-sdk 2.2.400 和 3.1.100...

type Z<'x>() =
  [<System.ComponentModel.TypeConverter(typeof<'x>)>]
  member this.M (a: 'x) = a

错误 FS3187:类型推断导致类型变量 x 逃逸其范围。考虑添加显式类型参数声明或调整代码以使其不那么通用。

最佳答案

相应的 C# 代码给出了稍微更具描述性的错误 CS0416 :“属性参数不能使用类型参数”。我认为这是一个基本的 .NET 限制,而不是 F# 限制,因此找到解决方法可能并不简单。

关于f# - typeof <'x' > 结果为 "Type inference caused the type variable x to escape its scope",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59415931/

相关文章:

f# - 动态转换为界面

f# - C# 到 F# 转换公共(public)部分类设备 : MarshalByRefObject

sql - 在 F# 中重播记录的数据流

matrix - math.net 矩阵并置

if-statement - 编译器如何处理已部分应用的 boolean 参数?

asynchronous - 在 F# 中展平嵌套的异步序列

f# - 降低 API 流畅度的最佳方法?

c# - 类似于 F#(或 C#)中 python 的三重引号?

recursion - F# 中计算排列的递归函数存在类型不匹配错误

使用 F# 继承空引用异常