title: Why Doesn't C# Allow Static Methods to Implement an Interface?
body: <p>Why was C# designed this way?</p>
  
  <p>As I understand it, an interface only describes behaviour, and serves the purpose of describing a contractual obligation for classes implementing the interface that certain behaviour is implemented.</p>
  
  <p>If classes wish to implement that behavour in a shared method, why shouldn't they?</p>
  
  <p>Here is an example of what I have in mind:</p>
  
  <pre><code>// These items will be displayed in a list on the screen.
  public interface IListItem {
    string ScreenName();
    ...
  }
  
  public class Animal: IListItem {
      // All animals will be called "Animal".
      public static string ScreenName() {
          return "Animal";
      }
  ....
  }
  
  public class Person: IListItem {
  
      private string name;
  
      // All persons will be called by their individual names.
      public string ScreenName() {
          return name;
      }
  
      ....
  
   }
  </code></pre>