我想重写这个函数以避免需要泛型参数,因为它应该可以通过其他方式获得,因为这个函数将被调用的冗余(T应该始终引用函数所在的类)叫):
Public Shared Function FMXSize(Of T As {New, FileStructure})() As Integer
Dim result As Integer
If SizeCache.TryGetValue(GetType(T), result) Then Return result
result = (New T()).CalculateSize()
SizeCache(GetType(T)) = result
Return result
End Function
使用当前实现将这样调用(注意:LibCtl
继承自FileStructure
):
Return LibCtl.FMXSize(Of LibCtl)()
或者像这样理想的实现(因为上面看起来多余):
Return LibCtl.FMXSize()