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

1 f#

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

我已经使用了这段代码:

float[] v1=new float[10]
Run Code Online (Sandbox Code Playgroud)

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

ComputeBuffer<float> bufV1 = 
  new ComputeBuffer<float>(Context, ComputeMemoryFlags.ReadWrite |
         ComputeMemoryFlags.UseHostPointer, v1);
Run Code Online (Sandbox Code Playgroud)

如果我在F#中创建一个数组,如下所示:

let v1 = [| 1.0..10.0 |]
Run Code Online (Sandbox Code Playgroud)

现在调用这样的动作:

let bufV1 = new ComputeBuffer<float>(Context, 
    ComputeMemoryFlags.ReadWrite ||| 
        ComputeMemoryFlags.UseHostPointer, v1)
Run Code Online (Sandbox Code Playgroud)

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

Bri*_*ian 5

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

注意F#所指的float是C#所谓的内容double.你可能需要

let v1 = [| 1.0f .. 10.0f |]
Run Code Online (Sandbox Code Playgroud)

其中f后缀使值为F#float32s(例如C#floats).