小编Eri*_*ric的帖子

F#将自定义类型转换/转换为原始类型

我已经使用自定义F#类型设计了我的应用程序域,但是现在看来,当我要实际将数据用于各种任务时,这些自定义类型将成为PITA,例如,使用其他库将值写入CSV文件依靠原语等

例如,我有一个像这样的自定义类型(用作其他较大类型的构造块):

type CT32 = CT32 of float
Run Code Online (Sandbox Code Playgroud)

但是这样的代码不起作用:

let x = CT32(1.2)
let y = float x //error: The type "CT32" does not support a conversion...
let z = x.ToString() //writes out the namespace, not the value (1.2)
Run Code Online (Sandbox Code Playgroud)

我尝试使用box / unbox和Convert.ToString()以及两个F#强制转换运算符,但是似乎没有一个允许我访问类型所包含的基本基本值。是否有一种简单的方法来获取自定义类型中的原始值,因为到目前为止,它们比实际使用的更令人头疼。

primitive f# types casting

3
推荐指数
2
解决办法
787
查看次数

标签 统计

casting ×1

f# ×1

primitive ×1

types ×1