Question: I have some code like:

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

```

And both of those Lookups work great. What I'm trying to is call the appropriate LookUp based on the type of another variable. Something that would look like...

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

```

I've tried to Google this but I'm having a hard time coming up with an appropriate search. Can anyone tell me how to do what I want?

Answer: 
You do not specify the full signature for the method that you're calling, but my psychic powers tell me that it is this:

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

```

And you want to avoid having to repeat `Integer` twice as in the example below:

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

```

The problem is that type parameters are only deduced when they're used in argument context, but never in return value context. So, you need a helper function with a `ByRef` argument to do the trick:

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

```

With that, you can write:

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

```
You can't use a dynamic type unless you do runtime compiling, which of course is really inefficient.

Although generics allows you to use different types, the type still has to be known at compile time so that the compiler can generate the specific code for that type.

This is not the way to go. You should ask about what problem you are trying to solve, instead of asking about the way that you think that it should be solved. Even if it might be possible to do something close to what you are asking, it's most likely that the best solution is something completely different.