title: IndexerName attribute on abstract classes
body: <p>I'm trying to rename my indexer property using IndexerName attribute on my abstract classes. But it still show compilation error <strong>The type 'XXX' already contains a definition for 'Item'</strong>.</p>
  
  <p>Abstract class:</p>
  
  <pre><code>public abstract class MyAbstract
  {
      [IndexerName("Indexer")]
      public abstract string this[string propertyName]
      {
          get;
      }
  }
  </code></pre>
  
  <p>Concrete class:</p>
  
  <pre><code>public class MyConcrete : MyAbstract
  {
      string item;
  
      public string Item
      {
          get { return item; }
          set { item = value; }
      }
  
      public override string this[string propertyName]
      {
          get { return propertyName; }
      }
  }
  </code></pre>
  
  <p>Compilation error:</p>
  
  <blockquote>
    <p><strong>The type 'MyConcrete' already contains a definition for 'Item'.</strong></p>
  </blockquote>
  
  <p>I've tried to put IndexerName on indexer override and it show error <strong>"Cannot set the IndexerName attribute on an indexer marked override"</strong></p>
  
  <p>How to use IndexerName on abstract classes ?</p>
  
  <p>Thanks in advance.</p>