2016-08-04 77 views
-1

在以下选项中,哪些是在VB.NET中声明数组的首选语法?在VB.NET中声明数组的首选语法是什么?

  1. Dim numbers1() As Integer

  2. Dim numbers2 As Integer()

MSDN文章How to: Initialize an Array Variable in Visual Basic提到第二选项作为优选的句法:Dim chars2 As Char()...,但第一选择似乎多见于其他文件。第二种选择可能会令人困惑,因为它与调用没有参数的构造函数非常相似。

E.g.

Dim customer As New Customer() ' Initialize a new Customer

看起来类似于:

Dim customer As Customer() ' An uninitialized array of Customers

这个问题是相似的,但不同:Different ways of declaring arrays in VB.NET

+1

这是什么原因一个广泛的问题,也是一个长期以来一直存在争议的问题。 '首选语法'本身**取决于** ...'Dim numbers1()As Integer'我会用这个来指定数组边界,例如'Dim numbers1(5)As Integer',另一个如果我不知道界限可能是什么。老实说,Dim numbers1()As Integer'和Dim dim2 As Integer()'是一样的,没有区别......它们都是没有边界(限制)的数组。 – Codexer

+1

@ Zaggler严格地说'Dim n(5)由于Int32'不再是一个声明,它是一个初始化,所以应该超出问题的范围。也就是说,使用第一种语法(AFAIK是第一个版本可能用于参数声明的唯一其他地方)没有更多优势,第二种语法与其他使用“数组声明”(作为属性的返回类型或功能,通用参数等)。 – Sehnsucht

+0

感谢您的输入。我刚刚在MSDN上找到了[Visual Basic编码约定](https://msdn.microsoft.com/en-us/library/h63fsef3.aspx),其中声明“将数组标识符放在类型上,而不是放在变量上” (例如'Dim letters4 As String()')。 –

回答

1

我会在这里发出响声。

我已经在代码中看到了比样式2更多的样式1,但是在涉及属性时,语法与语法有一些小的奇怪的不一致。

我的理论是,优选后的括号内是使其更符合声明属性,它是一个数组

Public Property x As Integer() 'is an array 
Public Property y() As Integer 'is NOT an array 

话虽这么说...使用列表:)