gpt4 book ai didi

vb.net - 如何获得正确类型的 T

转载 作者:行者123 更新时间:2023-12-04 02:47:50 24 4
gpt4 key购买 nike

我有这样的代码:

    Private Shared Function ReStoreFromXML(Of T)(ByVal TargetType As T, ByVal XMLpath As String) As List(Of T)

If Not TypeSupported(TargetType) Then Return Nothing
....
Return CType(mySerializer.Deserialize(fstream), List(Of T))

例如,TargetType 是 MyCustomType。

TypeSupported 应该检查 TargetType 是否正常。当我尝试类似的东西时

TargetType.GetType 

或者

GetType(T)

我只得到 System.RuntimeType 或 System.Type。我该如何解决这个问题?

更新:

为了更清楚地理解我想要什么...也在 ReStoreFromXML 方法中我有这样的代码:

 Dim mySerializer As XmlSerializer
mySerializer = New XmlSerializer(GetType(T))

如何使用参数 MyCustomType 创建 mySerializer?

最佳答案

I call my function in such way viewsList = ReStoreFromXML(GetType(MyCustomType), XMLpath)

那是你的问题。如果调用 ReStoreFromXML(GetType(string), ...),则 T 将为 Type/RuntimeType。如果调用 ReStoreFromXML("somestring", ...)T 将为 string

所以只需删除第一个参数,因为它是不必要的,因为您已经通过调用 GetType(T) 知道了类型。

Private Shared Function ReStoreFromXML(Of T)(XMLpath As String) As List(Of T)
Dim mySerializer = New XmlSerializer(GetType(T))
...
End Function

ReStoreFromXML(Of MyCustomType)(XMLpath)

关于vb.net - 如何获得正确类型的 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com