vb.net - 如何创建 'OF' 变量类型?

标签 vb.net types

我有一些代码,例如:

Lookup(Of String)("Testing")
Lookup(Of Integer)("Testing")

这两个查找都非常有效。我试图根据另一个变量的类型调用适当的 LookUp。看起来像...

Lookup(Of GetType(MyStringVariable))("Testing")

我尝试用 Google 搜索此内容,但很难找到合适的搜索结果。谁能告诉我如何做我想做的事?

最佳答案

您没有指定您所调用的方法的完整签名,但我的通灵能力告诉我它是这样的:

Function Lookup(Of T)(key As String) As T

并且您希望避免重复 Integer 两次,如下例所示:

Dim x As Integer
x = Lookup(Of Integer)("foo");

问题是类型参数仅在参数上下文中使用时才会被推导,而在返回值上下文中则不会被推导。因此,您需要一个带有 ByRef 参数的辅助函数来完成此任务:

Sub Lookup(Of T)(key As String, ByRef result As T)
    T = Lookup(Of T)(key)
End Sub

这样,你就可以写:

Dim x As Integer
Lookup("foo", x);

关于vb.net - 如何创建 'OF' 变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1441063/

相关文章:

scala - 如何为自定义 Scala 集合实现 newBuilder(具有正确的方差)?

vb.net - 如何检查列表项何时被选择,然后在选择时执行某些操作?

.net - 如何从 MemoryStream 中获取字符串?

.net - String() Array ToLower 的所有元素,使用 LINQ

types - 在 F# 中表达存在类型

java - 在不知道类型的情况下读取文件

javascript - 确认删除窗口-点击删除或取消时删除记录

vb.net - FileSystemWatcher - 没有 API 就无法做到这一点?

types - 如何判断一个类型来自哪个模块?

java - 返回中的不兼容类型错误给我错误?