2010-06-05 2 views
0

Я просто новичок в программировании я хочу тайный некоторый код из C# в F #,Преобразования C# кода F #

Я encotered этого кода:

float[] v1=new float[10]; 

... 

//Enqueue the Execute command. 
Queue.Execute(kernelVecSum, null, **new long[] { v1.Length }**, null, null); 

Ранее я спросить, как конвертировать v1 объект, Я думаю, я знаю, как, Но как я могу использовать вызов функции, особенно часть аргумента функции new long[] { v1.Length }, что означает new long[] { v1.Length } mean ??

Я создал v1 как этот let v1 = [| for i in 1.0 .. 10.0 -> 2.0 * i |]

это правильно? или я должен использовать v1 вот так let v1 = ref [| for i in 1.0 .. 10.0 -> 2.0 * i |]?

ответ

0
Queue.Execute(kernelVecSum, null, [| int64 (v1.Length) |], null, null) 

?

+0

Это создает массив 'v1 .Length' все инициализируются до нуля, что не является кодом C#. – Brian

+0

О да, я читал слишком быстро и предполагал слишком много :-) Вот мы идем ... – Mau

+0

Спасибо вам большое, ответы работают и помогают мне продвигаться с портированием кода – Brendon

2

Это действительно вопрос C# ... вы можете пометить его как таковой.

В C#

new long[] { v1.Length } 

создает новый массив long с, который содержит один элемент, значение которого v1.Length. В F # это будет, например,

[| int64 v1.Length |] 

(В любом случае, нет, вы не хотите, ref в F # код. И вы до сих пор не исправлен тип данных, как предложено here.)

+0

Спасибо вам большое, ответы работают и помогают мне продвигаться с портированием кода – Brendon

Смежные вопросы