それらの実装にデフォルトのコンストラクターがない場合、型パラメーターを抽象クラスの具体的な実装に制限することは可能ですか?
たとえば、私が持っている場合:
public abstract class Animal
{
private Animal()
{
}
public Animal(string name)
{
// ...
}
// ...
}
public class Penguin : Animal
{
// ...
}
public class Chimpanzee : Animal
{
// ...
}
また、次のクラスもあります。
public class ZooPen<T>
where T : Animal
{
// ...
}
と を許可new ZooPen<Penguin>()
しnew ZooPen<Chimpanzee>()
たいのですが、 を許可したくありませんnew ZooPen<Animal>()
。
これは可能ですか?