Любая возможность объявить индексаторы в C # как абстрактный член? - PullRequest
10 голосов
/ 02 октября 2011

Как гласит заголовок, я хотел бы объявить индексатор object this[int index] в абстрактном классе как абстрактный член.

Возможно ли это как-нибудь? Можно ли это объявить в интерфейсе?

Ответы [ 3 ]

15 голосов
/ 02 октября 2011

Конечно :

public abstract class ClassWithAbstractIndexer 
{
    public abstract int this[int index]
    {
        get;
        set;
    }
}
2 голосов
/ 02 октября 2011

Простой пример:

public interface ITest
{
    int this[int index] { get;  }
}

public class Test : ITest
{
    public int this[int index]
    {
        get { ... }
        private set { .... }
    }
}

Возможно несколько комбинаций private / protected / abstract для get и set

0 голосов
/ 02 октября 2011

Вы можете объявить это так:

internal abstract class Hello
{
  public abstract int Indexer[int index]
  {
      get;
  }
}

Тогда у вас будет возможность переопределить только get или переопределить get и set.

...