2
我試圖如下:是否有可能在VB.NET中有一個通用的默認屬性?
Default Public Property Data(Of dataType)(ByVal key As String) As dataType
Get
Return DirectCast(values.Item(key), dataType)
End Get
Set(ByVal value As dataType)
values.Item(key) = value
End Set
End Property
值是輸入字典(字符串,對象),但我們有關聯的密鑰數據類型另一個查找字典。
當然這種拒絕編譯,用波浪線下(中的dataType)由於:
Type parameters can not be specified on this declaration.
這是不可能的,還是我只是做錯了?
編輯:基本上我試圖讓這個屬性,所以我不必做以下事情。
Public Function GetData(Of dataType)(ByVal key As String) As dataType
Return DirectCast(values.Item(key), dataType)
End Function
Public Sub SetData(ByVal key As String, ByVal value As Object)
values.Item(key) = value
End Sub
它更有意義,使之成爲財產,這將是類的默認屬性。數據類型不能在類的實例化中指定,因爲它可以包含多個不同數據類型的對象。
不,我認爲通用性不(也不會)。這個So-Answer闡明瞭爲什麼編譯器必須知道'compile'-time的類型:http://stackoverflow.com/questions/3358374/can-i-have-generics-in-a-class-property/3375127#3375127 – 2011-03-08 22:30:42
這沒有發生,放棄了所有的希望。 – 2011-03-09 00:03:55
@Tim Schmelter,你可以將其作爲答案發布,以便我可以將其標記爲正確嗎? – 2011-03-09 00:14:25