Преобразование указателя типа C # в F #? - PullRequest
1 голос
/ 05 июня 2010

Я только новичок в программировании, я хочу преобразовать код из 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 ]

5 голосов
/ 05 июня 2010

(В .NET мы называем эти вещи ссылками на объекты; v1 является ссылкой на объект массива. Указатели - это нечто иное.)

Обратите внимание, что то, что F # обозначает float, это то, что C # называет double. Вам может понадобиться

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

, где суффикс f делает значения равными F # float32 s (например, C # float s).

2 голосов
/ 05 июня 2010

не ошибка.

Необходимо указать, что v1 не указатель, это объект в .Net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...