В течение очень долгого времени мне было интересно узнать следующее:
int[] array = new int[1];
int iArrayLength = array.Length; //1
Поскольку массивы реализуют интерфейс IList, допускается следующее:
int iArrayCount = ((IList<int>)array).Count; //still 1
НО:
int iArrayCount = array.Count; //Compile error. WHY?
int iArrayLength = array.Length; //This is what we learned at school!
Вопрос:
Как массив может реализовать IList<T>
(особенно свойство int Count { get; }
из IList<T>
), не допуская его использования в базовом классе?