2011-04-21 3 views
2

다음 문제가 발생합니다. 생성자가있는 클래스가 있습니다 (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입니다. 그런 것들을 생각하는 올바른 방법은 무엇일까요? 내가 잘못한 일은 뭐니?

건배!

답변

4

방금 ​​인스턴스 목록이 필요한 것처럼 나에게 보이는 :

Dim things As New List(Of Thing) 

나는 모든 것이 thing 클래스의 처리와 미세 생각하지만, 목록이 너무 인스턴스를 필요로 - 그것의 클래스/인스턴스를 단지 사물처럼.

+0

OMG를! 나는 지금 아주 어리 석다. =) 고마워! (필요한 10 분 후에 답변을 수락 할 것입니다) – Phonon

+0

걱정 마세요 & thx –

2

당신은 할 필요가 :

Dim things as New List(Of Thing) 

나 :

Dim things as List(Of Thing) 
things=New List(Of Thing) 
관련 문제