首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

Structure & List(of type)的有关问题,请各位大侠指教

2012-02-23 
Structure & List(of type)的问题,请各位大侠指教?我现在在模块中定义了如下的几个structurepublicstructu

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!

热点排行