您不能使构造函数通用,但您可以使用通用静态方法:
public static Constructor CreateInstance(int blah, IGenericType instance)
然后在构造函数之后执行您需要的任何操作(如果需要).在某些情况下,另一种替代方案可能是引入通用接口扩展的非通用接口.
编辑:根据评论......
如果要将参数保存到新创建的对象中,并且希望以强类型方式执行此操作,则该类型也必须是通用的.
此时构造函数问题消失了,但您可能希望在非泛型类型中保留静态泛型方法:因此您可以利用类型推断:
public static class Foo { public static FooCreateInstance (IGenericType instance) { return new Foo (instance); } } public class Foo { public Foo(IGenericType instance) { // Whatever } } ... IGenericType x = new GenericType (); Foo noInference = new Foo (x); Foo withInference = Foo.CreateInstance(x);