Dim numbers(4) As Integer inquiriesByYearMonthDay = New Byte(20)()() {} Dim sales()() As Double = New Double(11)() {}
请注意,第一个关键字甚至没有New关键字,第二个关键字只有New关键字,第三个关键字同时使用Dim和New关键字.为什么会有这么多的不一致,你应该使用哪一个?我对第一个感到最好奇,因为数组对象从未被创建过
Dim numbers(4) As Integer Dim sales()() As Double = New Double(11)() {}
正如Intellisense所示,数字已经可以使用了.对于锯齿状阵列销售 – 一组数组 – 到目前为止,代码已经告诉它将保留多少个数组.其中每个都是Nothing因为代码没有创建或分配给任何插槽:
声明销售的线实际上做了两件令人困惑的事情.它本可以这样声明:
' at some point I will want an array of array of doubles named sales: Dim sales()() As Double ' Ok,I need it to hold 12 double arrays: sales = New Double(11)() {}
第一步声明变量和类型.步骤2通过创建临时数组并分配它来定义“容器数组”. (该链接试图通过queriesByYearMonthDay来说明这一点 – 它在前面的块中声明.)
销售仍然没有准备好使用,它只是一堆没什么.
' Ok,I need the first array to hold 5 elements sales(0) = New Double(4) {} ' 0 based,so 4 == 5 items sales(0)(0) = 12.67 ' FINALLY we can use it
现在,sales(0)(0到4)可以存储数据. sales(1)()和其余部分尚未初始化.
新的并不是真正直接对销售采取行动.它正在创建一个新的临时数组(在右侧),它立即分配给左侧sales()中的一个插槽.
关键是:当给定大小时,阵列可以使用.所以,这些在功能上是相同的:
' create int array with 5 slots: Dim numbers(4) As Integer ' declare array; assign empty 4 slot int array to it: Dim numbers() As Int32 = New Int32(4) {}
第一份声明包括大小;第二个为它指定一个指定大小的(新)临时数组.也就是说,VB可以推断出大小:
昏暗的鱼类As String()= {“cod”,“salmon”,“tuna”,“perch”,“barracuda”}
{…}是另一个临时数组,VB指定给’鱼’.
但阵列只是笨重.销售额(6,3)代表什么?为了使它们可读,你需要在任何地方使用常量:foo = sales(SALES_MARCH,SALES_ZIGGY).就个人而言,我认为唯一好的数组是一个具有已知固定值的静态数组:
Dim Days As String() = {"sun","mon","tues"....}
否则,List(Of T),Dictionary(TK,TV),Collection(Of T)和许多其他人更容易使用,创建,管理和使用(他们自己的大小!)