public class Program
{
class Foo{} class Bar(int i){}
public static void Main()
T Fac<T>()where T :new(){
return new T();
}
Fac<Foo>();
Fac<Bar>();