Я застрял со следующей проблемой.У меня есть класс с конструктором (метод 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
Кроме того, в другом месте кода я объявляю список Thing
s:
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
как правильно думать о таких вещах?Что-то я делаю не так по дизайну?
Ура!