通用接口vb

时间:2012-08-07 10:53:31

标签: vb.net generics

试图了解通用接口和类。在新方法中使用我的类并使用此类型调用data.method时如何“获得T”?

Public MustInherit Class RepositoryBase(Of T)
    Implements IRepository(Of T)

    Private Data As IDAL

    Public Sub New()
        Data = DTOParserFactory.GetParser(T.GetType().ToString())
    End Sub

    Public Sub delete(BaseDTO As T) Implements Domain.Business.IRepository(Of T).delete
        'Data.delete(Convert.ChangeType(BaseDTO, TypeOf(Type))
    End Sub

    Public Function getAll() As System.Linq.IQueryable(Of T) Implements Domain.Business.IRepository(Of T).getAll
        'Return Data.getAll()()
    End Function
End Class

2 个答案:

答案 0 :(得分:1)

我假设您需要获取T的Type对象?

在你的构造函数

Public Sub New()
    Data = DTOParserFactory.GetParser(GetType(T).ToString())
End Sub

答案 1 :(得分:0)

我对这个问题不是很清楚,但也许这就是你要找的东西。

假设您有一个公共基类BaseDTO,那么您可以像这样定义RepositoryBase类:

Public MustInherit Class RepositoryBase(Of T As BaseDTO) 

然后你像这样声明一个类的实例:

Dim userRepository As New RepositoryBase(Of User)()

这样做是将T限制为BaseDTO的子类,并允许您访问所有BaseDTO的方法。