限制类模块中Collection的类型
|
我在一个类模块中有一个集合。我想将“可添加”的对象类型限制为该集合,即,集合只能接受一种给定类型的对象,而不能接受其他任何对象。
有什么方法可以强制添加到集合中的对象类型?
据我所知,没有内置的方法可以做到这一点。那么,解决方案是否将这个集合设为私有,并为通常可用于集合的方法(即
Add
,Remove
,Item
和Count
)构建包装函数?
我有点讨厌不得不编写3个包装函数,这些包装函数没有添加任何功能,只是为了能够向some0ѭ方法添加某种类型强制。但是,如果这是唯一的方法,那么那是唯一的方法。
没有找到相关结果
已邀请:
4 个回复
味芯憨
使其迭代,但这需要离开VBA IDE并直接编辑源文件。 首先,请参阅旧的《 Visual Basic 6.0程序员指南》中的“创建自己的集合类”部分: http://msdn.microsoft.com/zh-CN/library/aa262340(v=VS.60).aspx 在stackoverflow上,还有一个答案描述了同一件事: vb6等效于list
的功能。)
笛驮型迸
,它可以包含任何数据类型-只要在任何给定的
实例中所有项目都是同一类型。 我添加了一个私有Variant,它是给定实例ѭ8可以包含的数据类型的占位符。
在创建“ 8”实例之后,使用它之前,必须通过指定它将包含的数据类型来对其进行初始化。
然后,Add方法将只接受与Prototype类型相同的新项目(无论是对象还是原始变量……尚未使用UDT进行测试)。
其余部分与示例大致相同(加上一些错误处理)。糟糕的RvG并没有完全解决!更糟糕的是,Microsoft没有将这种功能作为内置功能包含在内...
橙绥
然后,当我想从CCollection创建一个实例时,就像下面的代码:
其中CEmpresa是我想要的对象的类类型
殿虫