Как работает петля ASP Classic FOR EACH? - PullRequest
3 голосов
/ 13 декабря 2011

Мне бы хотелось узнать, как работает цикл ASP Classic / VB6 FOR EACH . Я знаю, что в .NET участвуют IEnumberable / IEnumerator, но как это делает VB6 / ASP Classic?

Спасибо!

1 Ответ

5 голосов
/ 13 декабря 2011

Он делает это очень похожим образом. Класс, который поддерживает foreach, имеет метод с DispID -4, который возвращает объект перечислителя, аналогичный реализации IEnumerator.

Если вы намереваетесь реализовать это в VB6, то, хотя это возможно, вам придется быть готовым прыгать через непомерно сложные обручи, тем более что такие безумно сложные вещи теперь уже давно не продаются по дате. COM-эквивалент IEnumerator - это stole.IEnumVARIANT, одна из характеристик, которая делает его несовместимым с простой реализацией в VB6, заключается в том, что его метод Next использует S_FALSE HResult.

Если вы действительно, действительно хотите это сделать, тогда получите эту книгу: Advanced Visual Basic 6 , если можете. Предупреждение с точки зрения типичного разработчика VB6 термин «продвинутый» на самом деле не оправдывает себя. «Безумно глубокий VB6» будет лучшим описанием.

...