VB.NET数组定义,初始化问题,请人解决!

草履虫程序员 2019-01-21 09:53:06
VB.net里定义数组遇到个问题,并且初始化数组的内容。我定义数组是一个已经定义好的类型。文档里给出,这个类型是名称:Node。Node有两个属性,一个是ID,一个是Name。现在要定义一个Node类型的数组,并且初始化。
第一种方式:定义和初始化
Dim nodes() As Node = New Node(2) {}
nodes(0).ID=1
nodes(0).Name="aaa"

nodes(1).ID=2
nodes(1).Name="bbb"

nodes(2).ID=3
nodes(2).Name="ccc"

第二种方式:定义和初始化

Dim nodes(2) As Node
nodes(0).ID=1
nodes(0).Name="aaa"

nodes(1).ID=2
nodes(1).Name="bbb"

nodes(2).ID=3
nodes(2).Name="ccc"

这样两种方式定义和初始化有问题吗?
...全文
1119 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
numbermax 2019-03-24
  • 打赏
  • 举报
回复
dim nodes as node() dim len as integer=2 redim nodes(len) for i as integer=0 to len nodes(i)=new node() next i
草履虫程序员 2019-02-13
  • 打赏
  • 举报
回复
引用 6 楼 一树梅 的回复:
[quote=引用 4 楼 ruan1978 的回复:] [quote=引用 2 楼 一树梅 的回复:] [quote=引用 1 楼 ruan1978 的回复:] 求人指点!请帮帮忙!
都没有问题。楼主有什么疑惑?[/quote] 这个SetNodes()方法的原型定义,从接口手册里看到的说明如下: void SetNodes ( Node[] Nodes ) Sets array of nodes. Parameters Nodes Array of nodes to be set. [/quote] 楼主能在接口dll里查到Node的定义吗?能的话截个图看看。[/quote] 摸索出了这样的定义初始化,如果放在循环里,该如何处理啊? Dim nodes As Node() = New Node() { New Node With { .No = 1, .X = 0, .Y = 0, .Z = 0 }, New Node With { .No = 2, .X = 8, .Y = 0, .Z = 0 }, New Node With { .No = 3, .X = 18, .Y = 0, .Z = 0 }}
草履虫程序员 2019-01-30
  • 打赏
  • 举报
回复
引用 15 楼 一树梅 的回复:
楼主,我只能提一个调试的思路供参考。再定义一个node数组nNodes(元素个数和nodes 相同),不初始化,注销.SetNodes ( nodes ),之后令nNodes = nodes,调试一下看看 nodes的各个变量有无异常。
谢谢,我试下。
yishumei 2019-01-30
  • 打赏
  • 举报
回复
楼主,我只能提一个调试的思路供参考。再定义一个node数组nNodes(元素个数和nodes 相同),不初始化,注销.SetNodes ( nodes ),之后令nNodes = nodes,调试一下看看 nodes的各个变量有无异常。
qbilbo 2019-01-29
  • 打赏
  • 举报
回复
前面忽略了Structure,如果Node是Structure,而不是Class,那是不需要写:xxx= New Node()这句的。

那问题就是在参数上了。看看是不是nodes为Nothing或元素中不赋值不完整的情况 。
qbilbo 2019-01-29
  • 打赏
  • 举报
回复
引用
For i As Integer = 0 To nodes.Length Step 1
With nodes(i)
.ID = i
.Name = i.ToString()
End With
Next


引用
Dim nodes(2) As Node
nodes(0).ID=1
nodes(0).Name="aaa"


不管哪种方法,nodes(0) = New Node()这句都是必需的。
数组实例化了,不代表数组中的元素就不需要实例化了。

图中的错误是参数错误,那就说明nodes有问题。

按理来说报错应该在:nodes(0).ID=1这里,这可能是你贴代码时把New Node这句漏了。不管怎么说执行顺序上也是有别的问题的,在执行到SetNodes时,nodes还没实例化。那么报参数错误就可以解释的通了。
草履虫程序员 2019-01-29
  • 打赏
  • 举报
回复
引用 9 楼 一树梅 的回复:
从资料里看,结构体Node有很多变量,但是没有楼主所说的属性(一个是ID,一个是Name)。有两个属性的Node是在哪定义的?楼分别主右键Dim nodes(2) As Node里的Node和void SetNodes ( Node[] Nodes )里的Node[],查找一下定义,看看二者是否一致。
大侠,能否帮我解答?
草履虫程序员 2019-01-29
  • 打赏
  • 举报
回复
引用 13 楼 qbilbo 的回复:
前面忽略了Structure,如果Node是Structure,而不是Class,那是不需要写:xxx= New Node()这句的。 那问题就是在参数上了。看看是不是nodes为Nothing或元素中不赋值不完整的情况 。
Nodes是结构。
草履虫程序员 2019-01-26
  • 打赏
  • 举报
回复
引用 9 楼 一树梅 的回复:
从资料里看,结构体Node有很多变量,但是没有楼主所说的属性(一个是ID,一个是Name)。有两个属性的Node是在哪定义的?楼分别主右键Dim nodes(2) As Node里的Node和void SetNodes ( Node[] Nodes )里的Node[],查找一下定义,看看二者是否一致。
我只是举例而已,以实际截图的这个结构的属性为主,我都是一致的定义。
草履虫程序员 2019-01-25
  • 打赏
  • 举报
回复
引用 6 楼 一树梅 的回复:
[quote=引用 4 楼 ruan1978 的回复:] [quote=引用 2 楼 一树梅 的回复:] [quote=引用 1 楼 ruan1978 的回复:] 求人指点!请帮帮忙!
都没有问题。楼主有什么疑惑?[/quote] 这个SetNodes()方法的原型定义,从接口手册里看到的说明如下: void SetNodes ( Node[] Nodes ) Sets array of nodes. Parameters Nodes Array of nodes to be set. [/quote] 楼主能在接口dll里查到Node的定义吗?能的话截个图看看。[/quote] 手册里查到的Nodes的信息,您看看。
yishumei 2019-01-25
  • 打赏
  • 举报
回复
从资料里看,结构体Node有很多变量,但是没有楼主所说的属性(一个是ID,一个是Name)。有两个属性的Node是在哪定义的?楼分别主右键Dim nodes(2) As Node里的Node和void SetNodes ( Node[] Nodes )里的Node[],查找一下定义,看看二者是否一致。
平底锅锅锅 2019-01-23
  • 打赏
  • 举报
回复
语法不一样。但是效果一样
yishumei 2019-01-23
  • 打赏
  • 举报
回复
引用 4 楼 ruan1978 的回复:
[quote=引用 2 楼 一树梅 的回复:] [quote=引用 1 楼 ruan1978 的回复:] 求人指点!请帮帮忙!
都没有问题。楼主有什么疑惑?[/quote] 这个SetNodes()方法的原型定义,从接口手册里看到的说明如下: void SetNodes ( Node[] Nodes ) Sets array of nodes. Parameters Nodes Array of nodes to be set. [/quote] 楼主能在接口dll里查到Node的定义吗?能的话截个图看看。
草履虫程序员 2019-01-22
  • 打赏
  • 举报
回复
引用 3 楼 wenoxy 的回复:
这种定义没问题啊
请您帮我看看出错的提示图片如下 这个SetNodes()方法的原型定义,从接口手册里看到的说明如下: void SetNodes ( Node[] Nodes ) Sets array of nodes. Parameters Nodes Array of nodes to be set.
草履虫程序员 2019-01-22
  • 打赏
  • 举报
回复
引用 2 楼 一树梅 的回复:
[quote=引用 1 楼 ruan1978 的回复:] 求人指点!请帮帮忙!
都没有问题。楼主有什么疑惑?[/quote] 但是我实际调用手册里提示的方法时,却提示这个错误,如下图。 这个SetNodes()方法的原型定义,从接口手册里看到的说明如下: void SetNodes ( Node[] Nodes ) Sets array of nodes. Parameters Nodes Array of nodes to be set.
草履虫程序员 2019-01-21
  • 打赏
  • 举报
回复
求人指点!请帮帮忙!
wenoxy 2019-01-21
  • 打赏
  • 举报
回复
这种定义没问题啊
yishumei 2019-01-21
  • 打赏
  • 举报
回复
引用 1 楼 ruan1978 的回复:
求人指点!请帮帮忙!
都没有问题。楼主有什么疑惑?

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧