typeof <'x'>中的结果“类型推断导致类型变量x逃避其范围”

时间:2019-12-19 19:38:04

标签: f#

“类型推断导致类型变量x逃避其范围”是什么。错误的意思是这种情况?我 am 试图通过属性使其“转义”。为了成功获取'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逃脱其范围。考虑添加显式类型参数声明或将代码调整为通用性较低。

1 个答案:

答案 0 :(得分:3)

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