title: Why can't I create an abstract constructor on an abstract C# class?
body: <p>I am creating an abstract class. I want each of my derived classes to be forced to implement a specific signature of constructor. As such, I did what I would have done has I wanted to force them to implement a method, I made an abstract one.</p>
  
  <pre><code>public abstract class A
  {
      abstract A(int a, int b);
  }
  </code></pre>
  
  <p>However I get a message saying the abstract modifier is invalid on this item. My goal was to force some code like this.</p>
  
  <pre><code>public class B : A
  {
      public B(int a, int b) : base(a, b)
      {
          //Some other awesome code.
      }
  }
  </code></pre>
  
  <p>This is all C# .NET code. Can anyone help me out?</p>
  
  <p><strong>Update 1</strong></p>
  
  <p>I wanted to add some things. What I ended up with was this.</p>
  
  <pre><code>private A() { }
  
  protected A(int a, int b)
  {
      //Code
  }
  </code></pre>
  
  <p>That does what some folks are saying, default is private, and the class needs to implement a constructor. However that doesn't FORCE a constructor with the signature A(int a, int b).</p>
  
  <pre><code>public abstract class A
  {
      protected abstract A(int a, int b)
      {
  
  
      }
  }
  </code></pre>
  
  <p><strong>Update 2</strong></p>
  
  <p>I should be clear, to work around this I made my default constructor private, and my other constructor protected. I am not really looking for a way to make my code work. I took care of that. I am looking to understand why C# does not let you do this.</p>