下面的代码是用Vb.Net编写的,但我也接受了C#的答案。
我的类型如下:
Public Class MruItem(Of T)
Property1
End Class
另外,我有这个:
Public Class MruFileItem : Inherits MruItem(Of FileInfo)
BaseProperty1
Additional Properties
End Class
现在,我需要设计一个函数,可以将MruItem
作为参数,我可以作为参数传递,例如MruFileItem
或MruItem(of Whatever)
,然后返回相同的类型
但是,我尝试了但是我发现需要指定两个类型参数而不是一个
Function Test(Of A, B As MruItem(Of A))() As MruItem(Of A)()
End Function
所以,我需要以这种方式调用函数:
Dim Value As MruFileItem() = Test(Of FileInfo, MruFileItem())
...但我想以其他方式打电话:
Dim Value As MruFileItem() = Test(Of MruFileItem())
还有:
Dim Value As MruItem(Of Whatever) = Test(Of MruItem(Of Whatever))
我如何调整函数参数或类设计以避免传递两个类型参数而不是一个?。
我还尝试在Ctype
<>中添加缩小的MruItem(Of Object)
运算符MruItem(Of T)
然后调整类型参数,但没有成功。