Я пытаюсь вызвать функцию c # из f #, где функция C # принимает функцию (делегат?) В качестве параметра, и мне нужно, чтобы этот аргумент был функцией af #. Например:
Пример c #
public static void function_1(double x, ref double y)
{
y = Math.Exp(x);
}
main()
{
state s;
call_func(s, function_1)
}
Итак, call_func
имеет параметр типа void fn (double, ref double)
В f # я попробовал:
let function_1 (x:double) (y:double byref) =
let y = 6.0
()
let test =
let s = new state
let ret = call_func(s, function_1)
Но я получил ошибка из-за того, что f # function_1
имеет тип double -> double byref -> unit
, когда он должен быть типом делегата void fn (double, ref double)
.
Могу ли я привести тип или что-то в этом роде? Или есть ошибка?