我想知道如何在VB.Net中保存类中的数组。这是我的表单代码(它在程序加载时执行)。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim intArr As Integer() = {5, 3, 8, 1, 4, 6}
Dim statsObj As New StatsMachine()
statsObj.Data = intArr
Dim avg As Double = statsObj.Average()
txtAvg.Text = FormatNumber(avg, 2)
txtNumAboveAvg.Text = CStr(statsObj.NumElementsAbove(avg))
End Sub
我不允许更改此代码(这是本书中的一个问题)我应该创建类以便它可以运行。
所以我创建了“StatsMachine”类。我的第一个公共属性Data应该使用在此代码中创建的数组并保存它。不幸的是,我不能让这个工作。我的代码目前:
Public Class StatsMachine
Dim sourceData As Form1
Dim m_arr() As Integer
Public Property Data As Integer
Get
Return m_arr
End Get
Set(ByVal value As Integer)
m_arr() = sourceData.intArr()
End Set
End Property
End Class
Visual Studio说找不到sourceData.intArr()。我认为这是因为我在调用它时需要添加另一个标识符。这将是什么?这实际上并不仅仅适用于数组,我不知道如何从表单1中调用它。
谢谢!
答案 0 :(得分:1)
我假设你正在尝试实现这行代码背后的类和属性:
statsObj.Data = intArr
由于intArr
已声明As Integer()
,您应该使Data
属性相同。
你会想要一个这样的课程:
Public Class StatsMachine
Private m_arr As Integer()
Public Property Data As Integer()
Get
Return m_arr
End Get
Set(ByVal value As Integer())
m_arr = value
End Set
End Property
End Class
当我在Data setter函数中设置数组时,我不确定我的所有括号是否完全正确(因为它是VB)它可能需要m_arr() = value
一定要相信我的作业:)
答案 1 :(得分:0)
问题是,当Form1_Load中的代码实际访问您创建的类时,您正尝试从Form1访问数据。我很惊讶Visual Studio并没有抱怨尝试将变量声明为Form1,除非你在某个地方有一个类名。