【发布时间】:2011-08-10 09:18:26
【问题描述】:
我遇到了以下问题。我有一个带有构造函数的类(New(<args>) 方法)。我还有一个List 我想填充的此类对象。举个例子,这里有一些玩具代码(避免属性等):
Class Thing
Public PositionX, PositionY As UInteger
Public Name As String
Public Sub New(ByVal name As String, _
ByVal positionX As UInteger, _
ByVal positionY As UInteger)
Me.PositionX = positionX
Me.PositionY = positionY
Me.Name = name
End Sub
End Class
另外,我在代码的其他地方声明了Things 的列表:
Dim things As List(Of Thing)
当尝试运行以下代码行things.Add(New Thing("some name', 1, 1)) 时,我得到了Object reference not set to an instance of an object 异常。显然,我对对象实例的真正含义以及 VB.NET 如何使用它们存在误解。我想这可以追溯到我的 C/C++ 背景。
当然,我可以使用New 构造函数初始化一个变量,然后然后将它添加到列表中:
以下也不起作用:
Dim myThing = New Thing("some name", 1, 1)
things.Add(myThing)
我的问题是为什么简单地说New Thing("some name', 1, 1) 不会创建Thing 的实例 思考这些事情的正确方法是什么?我在设计上做错了什么?
干杯!
【问题讨论】:
标签: vb.net oop list constructor instance