F#转换为运行时提供的文本类型

F#转换为运行时提供的文本类型,f#,type-conversion,F#,Type Conversion,换句话说,如果我想要一个完全泛型的函数,我如何确保数值类型之间的编译/运行时转换 例如: 设fx=x+1//int->int 由于1,自动假定为int 我目前的做法是: 让gettype(x:'T)=typeof类型 让一个x=Convert.ChangeType(1,(gettype x))/'a->obj 设fx=x+one(x)//obj->obj 但是这不起作用,因为没有为objs定义+,如果您想要一个完全通用的函数,在参数中添加一个,我建议您使用: 请注意,您还需要内联函数,因为否

换句话说,如果我想要一个完全泛型的函数,我如何确保数值类型之间的编译/运行时转换

例如:

设fx=x+1//int->int
由于
1
,自动假定为
int

我目前的做法是:

让gettype(x:'T)=typeof类型
让一个x=Convert.ChangeType(1,(gettype x))/'a->obj
设fx=x+one(x)//obj->obj

但是这不起作用,因为没有为
obj
s

定义
+
,如果您想要一个完全通用的函数,在参数中添加一个,我建议您使用:


请注意,您还需要内联函数,因为否则运算符
(+)
不能是泛型的。

为什么需要这个?
let inline f x = x + LanguagePrimitives.GenericOne