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



在这种情况下,"类型推断导致类型变量 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# 限制,因此找到解决方法可能并非易事。

相关内容

最新更新