2013-05-17 2 views
0

Я следующие два классаКак я могу решить эту ссылку на объект Error

Public Class Square 
Private _ParentForm As Form 
     Public Sub New(ByVal Parent As Form) 
      _ParentForm = Parent 
     End Sub 

    'Implementation omitted 

End Class 


Public Class Board 
    Private _ParentForm As Form 

    Public Sub New(ByVal Parent As Form) 
     _ParentForm = Parent 
    End Sub 

    Private _Squares As List(Of Square) 

    Public Property Squares() As List(Of Square) 
     Get 
      Return _Squares 
     End Get 
     Set(ByVal value As List(Of Square)) 
      _Squares = value 
     End Set 
    End Property 

End Class 

Когда я использую followng код дает мне объект ссылка не указывает на экземпляр ошибки объекта

Dim b As New Board(Me) 
    Dim s As New Square(Me) 
    b.Squares.Add(s) 

Что произошло здесь

ответ

1

Вы не инициализирует _Squares поле. Не помню точно, как это сделать на VB, но должно быть что-то вроде:

Private _Squares As New List(Of Square) 

ответ Даррена прав, тоже, но с этим вам не придется беспокоиться о инициализации списка вне класса ,

1

У вас нет ни одного экземпляра Square, b.Squares не был инициализирован. Вам нужно

b.Squares As New List(Of Square) 

Затем можно добавить b.Squares.Add(s)

+0

Этот синтаксис неверен. Это должно быть 'b.Squares = Новый список (Of Square)' –

Смежные вопросы