0

试图了解通用接口和类。在新方法中使用我的类并使用这种类型调用 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
4

2 回答 2

1

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

在你的构造函数中

Public Sub New()
    Data = DTOParserFactory.GetParser(GetType(T).ToString())
End Sub
于 2012-08-07T11:04:38.920 回答
0

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

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

Public MustInherit Class RepositoryBase(Of T As BaseDTO) 

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

Dim userRepository As New RepositoryBase(Of User)()

它的作用是将 T 限制为 BaseDTO 的子类,并让您可以访问 BaseDTO 的所有方法。

于 2012-08-07T11:26:14.617 回答