Structure & List(of type)的问题,请各位大侠指教?
我现在在模块中定义了如下的几个structure
public structure aa
dim a1 as string
dim a2 as string
end structure
public structure bb
dim b1 as string
dim b2 as string
end structure
public structure cc
dim c1 as list(of aa)
dim c2 as list(of bb)
end structure
public VarT as new list(of cc)
public VarM as new aa
我在程序中使用VarT.item(i).c1.add(VarM)时就出错了,说没有定义New等
但是我使用如下定义程序又不允许
public structure cc
dim c1 as new list(of aa)
dim c2 as new list(of bb)
end structure
请问各位大侠我如何才能实现List(of type)的嵌套操作呢?
因为我的程序要求能动态的增加减少数组,而且应该是二维动态数组,
我想用List(of type)来实现,操作时遇到了以上的问题,请大侠们指教。
[解决办法]
1。
VB 语法不是黑清楚,逻辑上是没有问题的,
2。
但是,你的代码
public structure cc
dim c1 as list(of aa)
dim c2 as list(of bb)
end structure
中 c1,c2 确实没有实例化
3。
对于结构, MSDN C# 是这样描述的:
结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:
a.尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。 // 解释你的 dim c1 as new list(of aa) 不允许的问题
b.结构不能声明默认构造函数(没有参数的构造函数)或析构函数。 // 根据b,你只有定义带参数的构造函数,然后在执行 dim c1 as new list(of aa) 合 dim c2 as new list(of bb)
4。
假如,按 3 的解释是合理,那么问题应该可以解决了,
5。
通常甚用 structure,考虑到性能的问题:结构是按值传递的,特别对应“重量级”的类型,
而且,你这里的成员 c1 和 c2 都是引用类型,
如果按默认值传递方式,我不知道未不会导致“浅拷贝”的问题,有待测试
Hope helpful!