我还在学习VB.NET,通常我只是谷歌我的问题,但这次我真的不知道该找什么,所以我会在这里试试。
尝试编写一个将缓存键作为参数并返回缓存对象的函数。没有问题,但我无法弄清楚如何将该类型传递给与TryCast一起使用的函数,因此我不必对返回的结果这样做。
到目前为止,这是我的功能,???将以某种方式传递给函数的类型替换。
Public Function GetCache(ByVal tag As String) As Object
Dim obj As Object = Nothing
Dim curCache As Object = TryCast(System.Web.HttpContext.Current.Cache(tag), ???)
If Not IsNothing(curCache) Then
Return curCache
Else
Return Nothing
End If
End Function
我这样做完全错了还是我错过了什么?
答案 0 :(得分:0)
使用通用:
Public Function GetCache(Of T)(ByVal tag As String) As T
Return CType(System.Web.HttpContext.Current.Cache(tag), T)
End Function
更新:
编辑使用CType,因为trycast仅适用于引用类型。但是,如果转换失败,这可能会抛出异常。您可以处理异常,在进行强制转换之前检查类型,或者将代码限制为引用类型:
Public Function GetCache(Of T As Class)(ByVal tag As String) As T
Return TryCast(System.Web.HttpContext.Current.Cache(tag), T)
End Function