2008-09-26 8 views
3

У меня есть массив объектов базового класса, в который я приписал много разных объектов дочернего класса, и передаю его в sub vi. Есть ли способ, с помощью которого я могу узнать исходный тип объекта каждого отдельного элемента в массиве?Объекты LabVIEW

Благодаря ...

ответ

3

Для потомков это было перекрестное столкновение на форумах LAVA. Пользователь Аристос очередь, один из разработчиков нативных функций ОО LabVIEW, в ответил следующее:

Использование динамического метода доставки в каждом классе является рекомендуемым способом обработки этого, хотя рекомендация создать метод что делает то, что вы пытаетесь сделать. Я предполагаю, что вы думаете о динамическом методе отправки, который возвращает имя или идентификатор объекта, чтобы вы могли сказать: «Это равно этому? Хорошо, тогда это должен быть этот класс ...», а затем вы выполните действие X, если это тот класс. Если вы напишете динамический метод отправки ActionX.vi, а затем переопределите его соответствующим образом, вы сэкономите себя на производительности и значительно облегчите время для обслуживания кода в будущем.

Вы также можете использовать узлы To More Specific для проверки того, может ли данный объект быть отключен для данного типа - это позволяет проводить тестирование наследования, а не сопоставление имени или идентификатора, которое только эквивалентно типу. Если узел To More Specific возвращает ошибку, то это не тип назначения.

Так что ваши варианты (в порядке предпочтения):

  • динамический способ доставки, что делает действие
  • к более конкретному узлу, чтобы сделать типовые испытания
  • динамического метод доставки, который возвращает имя/ID класса объекта
  • Get Путь LabVIEW Object.vi (поставляется в vi.lib в LabVIEW 8.5, но не добавлен в палитр до LabVIEW 8.6)
1

NI имеет хороший overview of LVOOP, который нужно прочитать, поскольку OO реализуется уникальным способом для LabVIEW.

Вы пробовали функции «to more generic class» и «to more specific class» на панели управления приложениями?

+0

На самом деле мне нужен метод идентификации дочернего класса, к которому он принадлежит. Я не хочу его преобразовывать. – Manoj

 Смежные вопросы

  • Нет связанных вопросов^_^