我现在想知道 ASP Classic/VB6 FOR EACH 循环是如何工作的。我知道 .NET 涉及 IEnumberable/IEnumerator,但 VB6/ASP Classic 是如何做到的?
谢谢!
最佳答案
它以非常相似的方式实现。支持 foreach 的类有一个 DispID 为 -4 的方法,它返回一个类似于 IEnumerator 实现的枚举器对象。
如果您打算在 VB6 中实现它,那么虽然您可能必须准备好跳过极其复杂的环节,尤其是因为这种异常复杂的东西现在已经过时了。与 IEnumerator 等效的 COM 是 stole.IEnumVARIANT
,使其与 VB6 中的简单实现不兼容的一个特征是其 Next
方法使用 S_FALSE
HResult.
如果您真的非常想这样做,那就买这本书吧:Advanced Visual Basic 6如果你可以的话。 警告 从典型的 VB6 开发人员的角度来看,术语“高级”并没有真正做到公正。 “非常深的 VB6”将是一个更好的描述。
关于asp-classic - ASP Classic FOR EACH 循环是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488766/