Этот C # не компилируется:
public class IdList<T> where T : IdList<T>.Item {
List<T> List = new List<T>();
public T this[int id] {
get => List[id];
set { }
}
public class Item {
public int id;
// Not shown: id used for equality and hash.
}
}
Жалоба от компилятора:
Тип 'IdList' уже содержит определение для 'Item'
Если я закомментирую индексатор, он компилируется.
Как я могу получить это для компиляции? У Райдера нет исправлений.
Нестандартный обходной путь - не вкладывать класс Item.
IDE - Rider 2018.1.4, уровень языка 7.2, в macOS.