У меня появился вопрос, который не дает мне покоя вот уже несколько часов. Для того, чтобы использовать foreach для кастомной коллекции, нужно реализовать метод интерфейса IEnumerable.
IEnumerator IEnumerable.GetEnumerator(){
return arr.GetEnumerator();
}
С этим все ясно. Но какой класс реализует интерфейс IEnumerator? По началу я думал System.Array, но после того, как я не увидел IEnumerator в списке родителей System.Array решил обратиться сюда.
IEnumerator
реализован типом, объект которого возвращает arr.GetEnumerator()
.
IEnumerator IEnumerable.GetEnumerator()
{
IEnumerator result = arr.GetEnumerator();
Console.WriteLine(result.GetType().FullName);
return result;
}
Тип возвращаемого объекта - System.Array.SZArrayEnumerator
. Вот этот SZArrayEnumerator
и реализует IEnumerator
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть база данных, в ней 2 таблицы (category_sklad состоящая из id и nameproducts_sklad состоящая из id name kolvo category_id)
Есть динамическая переменная $password в которой храниться генерируемый пароль допустим: