F # нестати c методы в модулях - PullRequest
1 голос
/ 10 марта 2020

Я абсолютный новичок ie в кодировании, но мне нужно изменить скрипт F #. Это всегда дает мне ошибку "Метод или конструктор объекта 'x' не является stati c". Я читал, что это может быть связано с тем, что я пытаюсь вызвать не-stati c метод внутри модуля, который по умолчанию является stati c. Например, 'x' = Get.Axis ():

module Primitives =
let axis1 = Zaber.Motion.Ascii.Device.GetAxis(1)

В руководстве представлен код только в C#: var axis1 = device.GetAxis(1); Если я использую static member вместо let, я получу ошибка «неожиданное ключевое слово stati c in Definition», хотя я проверил отступ, как предложено в другом вопросе.

1 Ответ

4 голосов
/ 10 марта 2020

Предполагая, что вы используете Zaber Motion Library , я думаю, что вам нужно сначала получить экземпляр устройства, а не пытаться получить доступ к классу в stati c context.

В их документации приведен пример , как получить список устройств, открыв последовательный порт :

open Zaber.Motion.Ascii

use connection = Connection.OpenSerialPort("COM3")
let deviceList = connection.DetectDevices()

match deviceList |> Seq.tryHead with // See if we got at least one device
| Some device ->
    let axis = device.GetAxis(1)
    // TODO: Do whatever you want with the axis here
| None ->
    failwith "No Devices Found on COM3"
...