在VB.NET中是否可以有一个通用的默认属性?

在VB.NET中是否可以有一个通用的默认属性?,vb.net,generics,default,Vb.net,Generics,Default,我正在尝试以下操作: 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 值是类型字典(字符串、对象)

我正在尝试以下操作:

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
值是类型字典(字符串、对象),但我们有另一个查找字典,其中包含与键关联的数据类型

当然,由于以下原因,它拒绝编译(数据类型的)下的曲线:

这是不可能的,还是我做错了

编辑:本质上,我试图将其作为一个属性,这样我就不必执行以下操作

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

将其作为属性更有意义,并且它将是类的默认属性。不能在实例化类时指定数据类型,因为它可以包含不同数据类型的多个对象。

否,我认为在.Net中不可能(也不会)使用泛型属性。这个答案澄清了为什么编译器必须在编译时知道类型:


[从评论中复制]

不,我认为通用属性在.Net中不可能(也不会)实现。因此,这个答案澄清了为什么编译器必须知道编译时的类型。时间:这不会发生,放弃所有希望。@Tim Schmelter,你能把它作为一个答案发布,这样我就可以把它标记为正确吗?@HansPassant,或者干脆不要输入。
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