Question: As the title states, I would like to declare an indexer `object this[int index]` in an abstract class as an abstract member.

Is this possible in any way? Is it possible to declare this in an interface too?

Answer: 
A simple example:

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

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

```

Several combinations of private/protected/abstract are possible for `get` and `set`
You may declare it like this:

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

```

Then you'll have the option to override only `get` or override both `get` and `set`.