2008-09-26 75 views
3

我有一個基類對象數組,我已經將其中的許多不同的子類對象進行了類型化並將其傳遞給子vi。有什麼方法可以找出陣列中每個單獨元素的對象的原始類型?LabVIEW對象

謝謝...

回答

3

對於後人,這被交叉發送到LAVA論壇。用戶Aristos Queue是LabVIEW原生OO功能的開發人員之一,他回答如下:

在每個類中使用動態分派方法是推薦的處理方法,儘管建議創建一個方法無論你想要做什麼都行。我猜你正在考慮一個動態調度方法,它返回對象的名稱或ID,所以你可以說,「這是否等於這個?好吧,那麼它一定是這個類......」然後你如果是這樣的類,請執行Action X.如果您編寫動態分派方法ActionX.vi,然後進行適當的覆蓋,您將可以節省性能,並且將來可以更容易地進行代碼維護。

您還可以使用To More Specific節點來測試給定對象是否可以向下轉換爲給定類型 - 這允許進行繼承測試,而不是隻進行類型對等的名稱或ID比較。如果To More Specific節點返回一個錯誤,那麼它不是目標類型。

那麼你的選擇是(按優先順序排列):

  • 動態調度方法,做動作
  • 轉換爲特定的節點都做型式試驗
  • 返回名稱/ ID動態分配方法該對象的類別的
  • 的LabVIEW Object.vi(運vi.lib在LabVIEW 8.5,但不添加到調色板,直到LabVIEW 8.6中)的獲取路徑