在VB.NET中编写缓存函数

时间:2009-02-10 19:46:38

标签: vb.net caching

我还在学习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

我这样做完全错了还是我错过了什么?

1 个答案:

答案 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