我想做这样的事情:new DIConstructor(constructType)
其中 constructType
是一个 Type
对象。
我的 class DIConstructor<T>
期望我指明要构造的类型,但我实际上是将类型作为参数传递给对象的构造。
我知道我可以创建一个构造函数来接收类型为 T 的对象的实例,但我不想构造该对象。我只是想要这样,因为我在构造函数中提供泛型类型自行推断的类型。
这可能吗?
答案 0 :(得分:1)
class
' 类型参数。static
-工厂“模式”。
做这样的事情:
public class MyGenericType<T>
{
public MyGenericType( T foo )
{
// ...
}
}
public static class MyGenericType
{
public static MyGenericType<T> New<T>( T foo )
{
return new MyGenericType<T>( foo );
}
}
这样你就可以做到:
public static void Main( String[] args )
{
var foo = MyGenericType.New( 1234 ); // MyGenericType<Int32>
var bar = MyGenericType.New( "bar" ); // MyGenericType<String>
}