Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 尝试将对象转换为泛型类型结果,出现FS0013错误_F# - Fatal编程技术网

F# 尝试将对象转换为泛型类型结果,出现FS0013错误

F# 尝试将对象转换为泛型类型结果,出现FS0013错误,f#,F#,我正在尝试将obj转换为'T,在编译时收到FS0013错误。 我的代码有什么问题? 也许它坏了,因为我试图从C中“映射”它,而这在F中是以完全不同的方式完成的 你不需要改变信仰 只要写下: | Some x -> x 那么你的函数是泛型的。 模式匹配已分解类型并从选项中展开值。 不要将obj与generic't混淆。 返回obj的函数不一定是泛型函数 编辑 更新后,您可以使用以下功能: objectResult :?> 'a 但您将没有运行时担保 在F#:>中表示“向上播放”

我正在尝试将
obj
转换为
'T
,在编译时收到FS0013错误。
我的代码有什么问题?
也许它坏了,因为我试图从C中“映射”它,而这在F中是以完全不同的方式完成的


你不需要改变信仰

只要写下:

  | Some x -> x
那么你的函数是泛型的。 模式匹配已分解类型并从选项中展开值。 不要将
obj
与generic
't
混淆。 返回
obj
的函数不一定是泛型函数

编辑

更新后,您可以使用以下功能:

objectResult :?> 'a
但您将没有运行时担保


在F#
:>
中表示“向上播放”,而
:?>
表示“向下播放”(如果可以的话)。前者有编译时检查,这就是为什么“cast”被分为两个不同的操作。

我试图简化我的问题,但似乎简化得太多了。我将在问题中发布更新的代码。我更新了问题,如果您能看一看,将不胜感激。返回类型是什么:
environVar parameterName
Ok,那么您希望如何将字符串强制转换为任何类型
T'
?我希望它类似于C#:(bool)System.Convert.ChangeType(“False”,typeof(bool))
  | Some x -> x
objectResult :?> 'a