<p>If it's harder to explain using words, let's look at an example
I have a generic function like this</p>

<pre><code>void FunctionA&lt;T&gt;() where T : Form, new()
{
}
</code></pre>

<p>If I have a reflected type, how do I use it with the above function? I'm looking forward to do this</p>

<pre><code>Type a = Type.GetType("System.Windows.Forms.Form");
FunctionA&lt;a&gt;();
</code></pre>

<p>Of cause the above method doesn't work.</p>

You can't.  Generics in .NET must be resolved at compile time.  You're trying to do something that would resolve them at runtime.
The only thing you can do is to provide an overload for FunctionA that takes a type object.
Hmmm... the commenter is right.
```
```
class Program
{
    static void Main(string[] args)
    {
        var t = typeof(Foo);
        var m = t.GetMethod("Bar");
        var hurr = m.MakeGenericMethod(typeof(string));
        var foo = new Foo();
        hurr.Invoke(foo, new string[]{"lol"});
        Console.ReadLine();
    }
}

public class Foo
{
    public void Bar<T>(T instance)
    {
        Console.WriteLine("called " + instance);
    }
}
```
```
MakeGenericMethod
.