Por que não consigo criar um construtor abstrato em uma classe C # abstrata?
Estou criando uma classe abstrata. Eu quero que cada uma das minhas classes derivadas seja forçada a implementar uma assinatura específica do construtor. Como tal, fiz o que teria feito se quisesse forçá-los a implementar um método, fiz um abstrato.
public abstract class A
{
abstract A(int a, int b);
}
No entanto, recebo uma mensagem dizendo que o modificador abstrato é inválido neste item. Meu objetivo era forçar algum código como este.
public class B : A
{
public B(int a, int b) : base(a, b)
{
//Some other awesome code.
}
}
Isso é tudo código C # .NET. Alguém pode me ajudar?
Atualização 1
Eu queria adicionar algumas coisas. Acabei com isso.
private A() { }
protected A(int a, int b)
{
//Code
}
Isso faz o que algumas pessoas estão dizendo, o padrão é privado e a classe precisa implementar um construtor. No entanto, isso não força um construtor com a assinatura A (int a, int b).
public abstract class A
{
protected abstract A(int a, int b)
{
}
}
Atualização 2
Devo ser claro: para contornar isso, tornei meu construtor padrão privado e meu outro construtor protegido. Na verdade, não estou procurando uma maneira de fazer meu código funcionar. Eu cuidei disso. Estou procurando entender por que o C # não permite que você faça isso.