title: C#, implement 'static abstract' like methods
body: <p>I recently ran into a problem where it seems I need a 'static abstract' method. I know why it is impossible, but how can I work around this limitation?</p>
  
  <p>For example I have an abstract class which has a description string. Since this string is common for all instances, it is marked as static, but I want to require that all classes derived from this class provide their own Description property so I marked it as abstract:</p>
  
  <pre><code>abstract class AbstractBase
  {
      ...
      public static abstract string Description{get;}
      ...
  }
  </code></pre>
  
  <p>It won't compile of course. I thought of using interfaces but interfaces may not contain static method signatures.</p>
  
  <p>Should I make it simply non-static, and always get an instance to get that class specific information?</p>
  
  <p>Any ideas?</p>