将指针C#类型转换为F#?

时间:2010-06-05 16:27:33

标签: f#

我只是编程的初学者,我希望将一些代码从C#转换为F#,

我已经使用了这段代码:

float[] v1=new float[10]

我需要使用这个指针传递给函数:

ComputeBuffer<float> bufV1 = 
  new ComputeBuffer<float>(Context, ComputeMemoryFlags.ReadWrite |
         ComputeMemoryFlags.UseHostPointer, v1);

如果我在F#中创建一个像这样的数组:

let v1 = [| 1.0..10.0 |]

现在打电话给这样的动作:

let bufV1 = new ComputeBuffer<float>(Context, 
    ComputeMemoryFlags.ReadWrite ||| 
        ComputeMemoryFlags.UseHostPointer, v1)

这是一个错误吗?我如何传递指针??

2 个答案:

答案 0 :(得分:5)

(在.NET中,我们将这些东西称为引用到对象; v1是对数组对象的引用。指针是不同的东西。)

请注意,F#称为float的是C#称之为double的内容。你可能需要

let v1 = [| 1.0f .. 10.0f |]

f后缀使得值为F#float32 s(例如C#float s)。

答案 1 :(得分:2)

不是错误。

需要指出v1不是指针,它是.Net中的对象。