相关疑难解决方法(0)

类可以扩展Collection对象吗?

我正在尝试Collection在新类中扩展VBA 对象的功能并使该类成为继承者Collection,但该Implements Collection语句给出了以下错误:

Implements的接口不正确:方法名称中有下划线.

什么强调?!Add,Item,Remove,和Count用于文档中列出的唯一方法Collection.这四个都是无下划线的.

编辑:为了澄清,我正在创建一个名为UniformCollection(只接受所有相同类型的成员,受此方法启发).我希望它能够实现 Collection,所以a UniformCollection 是a Collection并且可以用来代替Collection调用其他对象的方法等.

我知道我必须为Add,Item等编写委托方法/属性,并使用NewEnum属性For Each来工作,我已经这样做了.

我的问题是该Implements Collection声明给出了上述错误.

奖金问题:是Count一种方法还是财产Collection?帮助将其称为属性,但VBA编辑器中的对象浏览器将其称为函数即方法(飞黄框).

collections vba interface-implementation

11
推荐指数
3
解决办法
5389
查看次数

vb6相当于list <someclass>

我想知道是否存在等价的(.net)

list<somefixedclass> 
Run Code Online (Sandbox Code Playgroud)

在vb6中

我知道vb6中存在集合,但它使用对象(变体)而不是特定对象.

谢谢.

vb6 list

10
推荐指数
2
解决办法
2万
查看次数

VBA引用容器对象 - 语法和面向对象的方法

对于我来说,这是一个关于学习面向对象方法的问题,因为它与VBA语法有关.假设我创建了几个类,如Car,Truck,Bus等.我创建了另一个类SpeedCalculator,我的车辆实例将实例化并包含.(作为一个新手,让我注意到这是一个很好的时间来宣布一个类是静态的而不是实例化它 - 哪个vba不能做我不认为.......)现在这个速度计算器将是没有简单的车速表.相反,它将根据温度,风速,RPM等计算速度 - 请与此一起,仅为了示例.

现在问题是所包含的对象如何收集其输入,这些输入仅在容器对象中可用(车辆对象可能实现接口(如果VBA甚至可以这样做......))."家长".是错的,我最终想通了,b/c parent-child是一个继承关系(VBA没有,再次),不是包含关系,包含对象的父是Excel应用程序(不是我的对象) .因此,如果有另一个关键字来引用容器属性,那似乎会很好.我希望我不会错过一些简单的事情.或者更多的情况是,这种引用会破坏面向对象的封装原则?

我想第二种方法是将容器传递给包含的,通过"Me"作为参数.但是你必须将所有包含的方法相乘,要么重载它们(如果VBA甚至可以这样做......),要么使用不同命名的版本 - 由于容器的类型不同(我们可以更理想化和避免声明为变体或"对象"?).

然后门#3将是最后一扇门,我猜?这将是一个(恼人的)一连串的争论.所有这些的定义往往会破坏我整洁的小计算器类的目的?

containers vba class object

5
推荐指数
1
解决办法
4382
查看次数