将可变数量的对象添加到集合中

时间:2015-07-21 09:25:49

标签: vba oop

我知道可以通过

将对象添加到集合中
view.setVisibility(View.GONE);

我可以调用我想要使用的数据(Cost = Bag.Quantity * 2)

但问题是我的项目列表将由用户定义。有没有办法将可变数量的对象添加到集合中,仍然能够按项目名称检索单个数据?

例如,我给了一个项目清单:鞋子,包,太阳镜,裤子

我想编写一个for循环来读取类" Item"下的所有这些对象。但仍能计算(xyz = Sunglasses.Quantity + Pants.Quantity - Bag.Quantity)。我曾尝试使用计数器,但它似乎只接受常量表达式。

这可能吗?如果是这样,我会很感激帮助找到如何做到这一点。

2 个答案:

答案 0 :(得分:3)

您可以使用键添加项目到集合:

ItemList.Add Shoe, "Shoe"

然后通过指定此键来检索它:

Dim Shoe As CItem
Set Shoe = ItemList.Item("Shoe")

答案 1 :(得分:2)

Set Shoe = New CItem
      With Shoe
           .Quantity
           .IDNumber 
           .Description
      End With

请注意,您在此处创建的CItem对象没有描述对象类型的属性。也就是说,如果你只看对象,就没有办法说它“是鞋子”。您对此类对象的所有了解都是数量,ID号和说明。

您将变量命名为Shoe;但这只是变量的名称,而不是引用的对象。

您需要做的是添加某种.Type.Category属性,以便您的对象具有自我描述性。您的上述代码将再修改一行,如下所示:

Shoe.Category = "Shoe"

这样就可以获取CItem的集合,迭代它们,并总结每.Category的数量。

但是列表中的对象将不再具有专用的变量名称。