我正在爲使用Visual Basic 2008作爲學習練習的朋友的桌面RPG編寫角色創作者,所以如果我做出愚蠢的選擇,請善待他人。 :]在VB 2008中,一個子過程如何在不同的調用中接受不同結構的數組?
我有三個結構數組,一個叫做m_OwnedWeapons,它是從一個叫做Weapons的結構創建的,一個叫做m_OwnedArmor,由一個名爲Armor的結構創建,另一個叫做m_OwnedPotions,由名爲Potions的結構創建。他們有一些相似之處和一些差異,但很多時候我需要對他們每個人做相同的操作。例如,當列表框中的索引發生變化時,我的程序會搜索結構中的每個數組,以查找哪個包含該項目,然後更新顯示的值(成本,描述等)。
我的問題是,我想要一種方法,我只需要編寫一次搜索代碼。現在我必須寫三遍,因爲它必須按名稱搜索。我有相同的代碼貼三次,只有一次是指m_OwnedPotions,一旦它指的是m_OwnedArmor,一旦它指的是m_Owned武器:
LoopCountInteger = 0
If m_OwnedPotionsCounterInteger > 0 Then
Do Until LoopCountInteger >= m_OwnedPotionsCounterInteger Or ItemFoundBoolean = True
If InventoryListBox.SelectedItem.Equals(m_OwnedPotions(LoopCountInteger).NameString) Then
ItemFoundBoolean = True
End If
LoopCountInteger += 1
Loop
End If
有沒有一種辦法,也許寫某種子過程與此接受結構名稱數組作爲參數的代碼?這是不可能的,因爲一個是武器結構,盔甲之一和物品之一的陣列?
也許我只需要一個名爲Items的結構數組,它可以容納所有項目類型所需的字段,但是如果我這樣做就會顯得不整齊,因爲那個結構有很多字段沒有用於大多數項目。我不知道。
感謝您的任何幫助和建議。
除非你有特別需要學習vs2008的特殊需求,我推薦去vs2013,快遞版是免費的 – Segfault