2010-06-05 4 views
0

Je suis un débutant dans la programmation je souhaite un code secret de C# à F #,Conversion d'un code C# à F #

J'encotered ce code:

float[] v1=new float[10]; 

... 

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

Je demande au préalable comment convertir l'objet v1, Je pense que je sais comment, Mais comment puis-je utiliser l'appel de la fonction en particulier la partie new long[] { v1.Length } de l'argument de la fonction, que signifie new long[] { v1.Length }?

J'ai créé v1 comme celui-ci let v1 = [| for i in 1.0 .. 10.0 -> 2.0 * i |]

est-il exact? ou dois-je utiliser v1 comme ceci let v1 = ref [| for i in 1.0 .. 10.0 -> 2.0 * i |]?

Répondre

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

?

+0

Cela crée un tableau de 'v1 Les éléments .Length' sont tous initialisés à zéro, ce qui n'est pas le cas du code C#. – Brian

+0

Oh ouais, j'ai lu trop vite et supposé trop :-) On y va ... – Mau

+0

Merci beaucoup tout le monde, les réponses fonctionnent et m'aident à avancer en portant le code – Brendon

2

Ceci est vraiment plus une question C# ... vous pourriez le marquer comme tel.

En C#

new long[] { v1.Length } 

crée un nouveau tableau de long s qui contient un seul élément dont la valeur est v1.Length. En F #, ce serait par exemple

[| int64 v1.Length |] 

(Dans tous les cas, non, vous ne voulez pas le ref dans le code F #. Et vous avez toujours pas corrigé le type de données comme suggéré here.)

+0

Merci beaucoup à tous, les réponses fonctionnent et m'aident à avancer avec le portage du code – Brendon