Вы не можете.
Общие параметры используются и применяются компилятором, в то время как Type
является частью отражений, предназначенных для работы с информацией о типах во время выполнения.Таким образом, вы просто не можете определить, какой тип компилятора следует использовать, если у вас есть только System.Type
.
Однако вы можете сделать наоборот:
public void Foo<T>()
{
Type t = typeof(T);
}
Так что если вам действительно не нужно использовать Type
в качестве параметра вы можете сделать следующее:
Foo<FooParam> MakeFoo<FooParam>()
{
return new Foo<FooParam>();
}