所以我刚刚开始进入VB中的自定义类,并在我尝试编写时遇到此错误。我试图按照老师的例子,但也想进入VB的一些更高级的方面,并试图在我的课程中使用一个数组,好吧,事情不太有效。
Form1类:
Dim mypt(7) As Point
Private Sub Create_Click(sender As Object, e As EventArgs) Handles Create.Click
PtSelect = Input() 'Returns an int
mypt(PtSelect).mC(0) = CDec(IX.Text) 'Error here!
mypt(PtSelect).mC(1) = CDec(IY.Text)
mypt(PtSelect).mC(2) = CDec(IZ.Text)
End Sub
点类:
Public Class Point
Private c(2) As Decimal
Public Sub New(ByVal X As Decimal, ByVal Y As Decimal, ByVal Z As Decimal)
c(0) = X
c(1) = Y
c(2) = Z
End Sub
Public Property mC(Val As Integer) As Decimal
Get
Return c(Val)
End Get
Set(value As Decimal)
c(Val) = value
End Set
End Property
End Class
真的只是不确定在这一点上做了什么,我已经摆弄了我能想到的一切,但我不确定。在我遇到错误之前,我的老师确实说过可以在类中使用数组,我想让它工作。
答案 0 :(得分:1)
在Vb.net中使用类时,它使用指针的概念。这意味着每个变量都指向一个对象。所以当你实例化你的数组时
Dim mypt(7) As Point
它创建一个8指针数组,每个指针包含值Nothing。您必须使用
调用类Point的构造函数New Point(2,2,3)
并使数组中的指针指向该对象。
mypt(1) = New Point(2,2,3)
答案 1 :(得分:0)
(代表OP发布)。
感谢用户Matriac!只有改变我必须做的是:
mypt(PtSelect).mC(0) = CDec(IX.Text) 'Error here!
mypt(PtSelect).mC(1) = CDec(IY.Text)
mypt(PtSelect).mC(2) = CDec(IZ.Text)
对此:
mypt(PtSelect) = New Point(CDec(IX.Text), CInt(IY.Text), CDec(IZ.Text))