sách gpt4 ai đã đi

Làm thế nào để lớp tùy chỉnh của tôi tương thích với For Each?

In lại 作者:行者123 更新时间:2023-12-04 23:19:53 26 4
mua khóa gpt4 Nike

是否可以使纯粹在 VBScript(无 COM 对象)中实现的自定义容器类与 For Each 语句一起使用?如果是这样,我必须公开哪些方法?

1 Câu trả lời

简而言之,没有

为什么?创建一个可枚举的集合类来获得类似的东西

Class CTest
....
End Class

Dim oTest, mElement
Set oTest = New CTest
....
For Each mElement In oTest
....
Next

该类必须遵循一些规则。我们需要类来暴露
  • 名为 Count 的公共(public)只读属性
  • 称为 Item 的公共(public)默认方法
  • 名为 _NewEnum 的公共(public)只读属性,那应该返回一个IUnknown与实现 IEnumVARIANT 的对象的接口(interface)接口(interface)和 必须具有 hidden 属性和 -4 的调度 ID

  • 从这个列表或要求来看,VBScript 不包括任何方式来指示一个属性的调度 ID 或隐藏属性。

    所以,这不能做

    枚举存储在容器类中的元素的唯一方法是拥有一个返回的属性(或方法)
  • 支持所有指定要求的对象,通常是用于保存元素的同一对象(速度快,但会暴露太多信息)
  • 一个数组(在 VBScript 中可以枚举数组),包含对容器中每个元素的引用(如果需要在调用时生成数组,则速度很慢,但不返回任何非必需信息)
  • 关于vbscript - 如何使我的自定义类与 For Each 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175464/

    26 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com