如何在 LabVIEW Class 中設定 Dynamic Dispatch

更新 Jan 19, 2024

環境

軟體

  • LabVIEW

  • 我希望使用 Dynamic Dispatch 讓子 Class 覆寫 LabVIEW 中的 Parent Method (父類別的方法)。
  • 我想將子類別連結到父類別並設定我的VI以進行 Dynamic Dispatch (動態調度)
  • 我正在修改一個 Class,但我的子 Class VI 已損壞,當我點擊損壞的箭頭時,我收到此 VI 嘗試在祖先 Class 中 Override Static VI 錯誤,並顯示以下訊息。
This VI attempts to override a static VI in an ancestor class. An ancestor class has a VI by the same name that does not have a dynamic dispatch input terminal. Only dynamic member VIs can be overridden in child classes. To correct this, change the name of this VI so that it does not match any ancestor VI names or edit the ancestor to include a dynamic dispatch input terminal.

要實現 Dynamic Dispatc,請確保 Child Class (子類別) 正確地繼承了 Parent Class (父類別):
1.- 右鍵點擊子類別,然後按一下「Properties」選項。

2.- 選到 Inheritance 分頁並點選 Change Inheritance...

3.- 選擇要繼承的父類別,然後按一下「Inherit From Selected」。

4.- 按一下「OK」退出屬性對話框。
5.- 右鍵點擊父類別,然後按一下 New -> VI from Dynamic Dispatch Template ...

6.- 實作父類別方法的功能(如果它應該有的話)。
7.- 確保所有 VI 和 Class 都存好檔了。
8.- 右鍵點擊子類別,然後按一下 New -> VI for Override...


9.- 實作 Override Method 中的的功能。

附加資訊

有關LabVIEW 物件導向程式設計的更多資訊,請參閱 LabVIEW 物件導向程式設計常見問題解答