3
class Factory<Product> where Product : new()
{
public Factory()
: this(() => new Product())
{
}
public Factory(System.Func<Product> build)
{
this.build = build;
}
public Product Build()
{
return build();
}
private System.Func<Product> build;
}
在Factory
,当Product
有一个公共的默认构造函数,我希望客户端不必指定如何构造一个(通过第一个构造函数)。不过,我想允许Product
没有公共默认构造函数(通过第二个构造函数)的情况。带有“条件”约束的C#泛型类?
Factory
的通用约束是允许实现第一个构造函数所必需的,但它禁止在没有公共默认构造函数的情况下使用任何类。
有没有办法让两者兼容?