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