我遇到以下問題。我有一個帶構造函數的類(一個New(<args>)
方法)。我也有這個類的對象的List
,我想填充。舉個例子,這裏的一些玩具代碼(避免性能和這樣):什麼可以被視爲VB.NET中的實例:對象引用未設置爲對象的實例
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
此外,在代碼的其他地方,我宣佈的Thing
個清單:
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
什麼是正確的方式來思考這樣的事情?我做錯了什麼設計?
乾杯!
OMG!我現在覺得很傻=)謝謝! (接受所需的10分鐘後回答如此) – Phonon 2011-04-21 14:57:06
不用擔心&thx – 2011-04-21 14:57:52