代码之家  ›  专栏  ›  技术社区  ›  Biswanath

将扩展方法应用于具有泛型类型的泛型类

  •  10
  • Biswanath  · 技术社区  · 17 年前

    我在用vb.net中的泛型类。
    而且,似乎扩展方法不能在没有指定类型的情况下应用于泛型类。

    我有这个普通班

    Public Class MyGeneric(Of T)
        'Methods and properties go here 
        '
        '
    End Class  
    

    这没问题

    <Extension()> _
    Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double))
    
    End Sub  
    

    这不正常(IDE给出了未定义的错误T。)

    <Extension()> _
    Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T))
    
    End Sub
    

    这与.NET的静态检查有关吗?
    告诉我“你可以尝试用T型做的事情可能不兼容,我不允许你这样做。”

    P.S.所有这些我作为通用类所经历的痛苦都来自另一个库,并在许多不同的地方使用。在继承的泛型类中继承和添加此方法时,我有点担心。

    1 回复  |  直到 15 年前
        1
  •  16
  •   Binary Worrier    15 年前

    如果您使扩展方法成为一个通用方法,它应该可以工作

    也就是说 (t) ()剂量测定法

    <Extension()> _
    Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T))
    End Sub
    

    希望这有帮助

    推荐文章