我創建了一個請求類。下面是它的一個簡化版本:需要幫助初始化VB.Net中的泛型屬性
Public Class Request(Of T)
Private _Account As String
Public Property Account() As String
Get
Return _Account
End Get
Set(ByVal value As String)
_Account = value
End Set
End Property
Private _InnerRequest As T
Public Property InnerRequest() As T
Get
Return Me._InnerRequest
End Get
Set(ByVal value As T)
Me._InnerRequest = value
End Set
End Property
End Class
然後,我有,我打算用這一個使用其他兩個類 - 再次,簡稱
Public Class Individual
Public FirstName As String
Public LastName As String
Friend Sub New()
End Sub
End Class
而且
Public Class Commercial
Public EntityName As String
Friend Sub New()
End Sub
End Class
再次,這兩個都很簡短。問題進來時,我嘗試使用個人或商業的性質:
Dim Req As New Request(Of Individual)()
Req.InnerRequest.FirstName = "Herman" <-- Null Ref Exception
所以...我怎麼得到我的內在要求空裁判例外踢?我嘗試在Request的New子部分簡單地使用Me._InnerRequest = New T
,但沒有骰子。有沒有辦法解決這個問題?
除非您使用的是舊版本的.Net Framework,否則如果您僅使用默認獲取器和設置器,則不需要所有'_BackingFields'和'Get's /'Set's。而@巴里是對的。 'Req.InnerRequest'永遠不會被設置,所以它是空的。 – 2014-10-07 19:24:40
還有一點比我在這裏提出的更多,所以它不是默認的。我沒有意識到我不需要支持領域,當我最初設置屬性時,它只是「專業」選項卡選項卡,併爲我填充所有內容,然後我進行調整。我會考慮簡化。 Barry的建議沒有在創建Request對象時實例化它,這是理想的我正在尋找的東西,但可能是不可能的。 – MattB 2014-10-07 19:32:44