2014-03-05 66 views
2

以下是我的代碼如何創建一個類,它的一個對象是VB中另一個類的類型?

Class LIVandOSA 
    Public LIV_ As String 
    Public OSA_ As String 
End Class 

Class TestUnitID 
    Public SMPSdata As LIVandOSA 
    Public SMdata As LIVandOSA 
    Public COATEDBARdata As LIVandOSA 
    Public CLCLdata As LIVandOSA 

    Public Sub New(ByVal s As String) 
     SMPSdata.LIV_ = s 
    End Sub 
End Class 

在主程序中,我寫了下面的代碼創建的TestUnitID列表,並添加一些元素進去。

Dim a As New List(Of TestUnitID) 
    a.Add(New TestUnitID("a1.csv")) 
    a.Add(New TestUnitID("a2.csv")) 
    TextBox1.Text = a(0).SMPSdata.LIV_ 

但是,當我嘗試編譯它,它給了我下面的錯誤

An unhandled exception of type 'System.NullReferenceException' occurred in WindowsApplication1.exe 

Additional information: Object reference not set to an instance of an object. 

和錯誤遊標指向行SMPSdata.LIV_(s)

我應該怎麼解決這個問題?

回答

2

錯誤是不言自明的,你還沒有初始化那個對象。

既然你是在構造函數是初始化字段和屬性的好去處:

Class TestUnitID 
    Public SMPSdata As LIVandOSA 
    Public SMdata As LIVandOSA 
    Public COATEDBARdata As LIVandOSA 
    Public CLCLdata As LIVandOSA 

    Public Sub New(ByVal s As String) 
     Me.SMPSdata = New LIVandOSA() 
     Me.SMdata = New LIVandOSA() 
     Me.COATEDBARdata = New LIVandOSA() 
     Me.CLCLdata = New LIVandOSA() 

     SMPSdata.LIV_(s) 
    End Sub 
End Class 
1

你應該使用對象之前啓動它,因此,你可以使用

Me.SMPSdata = New LIVandOSA() 
... 

到創建一個新對象

相關問題