скажем, у меня есть такой тип:
type Variedvalue = I of int| S of string | F of float
Есть ли способ создать функцию, которая принимает общий параметр, который инициализирует правильное поле объединения?
то есть что-то вроде
with static member initVariedValue (x : 'a) =
match x.getType() with
| int -> VariedValue.I x
| float -> VariedValue.F x
| String -> VariedVAlue.S x
Это не работает, даже если я встраиваю его, поскольку общая переменная в этом случае выводится как int, таким образом, никогда не достигнет условного числа с плавающей запятой или строки.
Так есть ли какой-нибудь умный способ сделать это, или мне просто нужно создать конструктор для каждого поля?