vb.net – 创建数组时何时需要使用`New`关键字?
我只是在VB中查看
help页面的数组,显然所有这些都是创建数组的可接受语法:
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)和许多其他人更容易使用,创建,管理和使用(他们自己的大小!) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |