我在我的智慧的盡頭在這里。我想要做的是從一個包含資訊串列的類創建一個陣列。
到目前為止我嘗試過的是 - 首先,創建類:
Public Class PowerArray
Public Name As String
Public Action As String
Public Cost As Integer
Public Pool1 As String
Public Pool2 As String
Public Range As String
Public Duration As String
Public Tags As ArrayList = New ArrayList
Public Desc As String
End Class
然后,定義一個使用 PowerArray 作為型別的新物件,包含在一個公共類中,以便可以在任何子中呼叫它:
Public Class GVar
Public Shared CharPowers(100) As PowerArray
Public Shared PCount As Integer = 0
End Class
但是當我嘗試寫入該物件時,它不斷拋出空參考例外。
例子:
嘗試向 CharPowers(GVar.Pcount) 寫入一個條目(其中 PCount 當前為 0,“txt.PowerName.Text”是任何字串):
GVar.CharPowers(GVar.PCount).Name = txtPowerName.Text
...拋出例外。無論我嘗試寫入哪個值,都會發生這種情況。
在使用該型別(不是作為陣列,而只是一個簡單物件)在 sub 中定義新物件時,我沒有遇到任何重大問題,所以我猜物件是一個陣列. 我只是無法弄清楚如何或為什么。它顯然存在,它是在啟動時定義的。
uj5u.com熱心網友回復:
您的陣列GVar的型別為元件的陣列PowerArray具有值Nothing。您必須先創建一個實體PowerArray并將其分配給陣列元素,然后才能設定PowerArray物件的欄位。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim PA As New PowerArray
GVar.CharPowers(GVar.PCount) = PA
GVar.CharPowers(GVar.PCount).Name = TextBox1.Text
MessageBox.Show(GVar.CharPowers(GVar.PCount).Name)
End Sub
你打算增加PCount嗎?如果您使用List(Of PowerArray).
編輯
Public Class PowerArray
Public Property Name As String
Public Property Action As String
Public Property Cost As Integer
Public Property Pool1 As String
Public Property Pool2 As String
Public Property Range As String
Public Property Duration As String
Public Property Tags As New List(Of Object)
Public Property Desc As String
End Class
Public Class GVar
Public Shared Property CharPowers As New List(Of PowerArray)
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim PA As New PowerArray
PA.Name = TextBox1.Text
GVar.CharPowers.Add(PA)
For Each item As PowerArray In GVar.CharPowers
MessageBox.Show(item.Name)
Next
End Sub
uj5u.com熱心網友回復:
似乎我被一個答案絆倒了。特別是:
Public Class GVar
Public Shared CharPowers(100) As PowerArray
Public Shared PCount As Integer = 0
Shared Sub New()
For i = 0 To CharPowers.GetUpperBound(0)
CharPowers(i) = New PowerArray
Next
End Sub
End Class
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/362716.html
上一篇:安裝列印機時的VB.net進度條
