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.

questionAnswers(8)

yourAnswerToTheQuestion