3

我现在想知道ASP Classic/VB6 FOR EACH循环是如何工作的。我知道 .NET 涉及 IEnumberable/IEnumerator,但是 VB6/ASP Classic 是如何做到的呢?

谢谢!

4

1 回答 1

5

它以非常相似的方式进行。支持 foreach 的类有一个 DispID 为 -4 的方法,该方法返回一个类似于 IEnumerator 实现的枚举器对象。

如果您打算在 VB6 中实现这一点,那么尽管您可能必须准备好跳过极其复杂的箍,特别是因为这些疯狂复杂的东西现在已经远远超过了它的销售日期。与 IEnumerator 等效的 COM 是stole.IEnumVARIANT,使其与 VB6 中的简单实现不兼容的一个特点是它的Next方法使用S_FALSEHResult。

如果您真的非常想这样做,那么请阅读这本书:Advanced Visual Basic 6,如果可以的话。 从典型的 VB6 开发人员的角度发出警告,“高级”一词并没有真正做到公正。“Insanely deep VB6”将是一个更好的描述。

于 2011-12-13T11:57:31.013 回答