Использование делегатов C # с функциями f #

Я пытаюсь вызвать функцию 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) .

Могу ли я привести тип или что-то в этом роде? Или есть ошибка?

6
задан Chris Smith 3 February 2012 в 01:10
поделиться