2016-08-04 1 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

Это широкий вопрос, а также был долгим спорным вопросом. 'preferred syntax', который сам ** зависит ** ...' Dim numbers1() As Integer' Я бы использовал это, чтобы указать границы массива, например 'Dim numbers1 (5) As Integer', а другой, если я не знайте, какие границы могут быть. Честно говоря, «Dim numbers1() As Integer' и этот« Dim numbers2 As Integer() »одинаковы, никакой разницы ... они оба являются массивами, которые не имеют границ (ограничений). – Codexer

+1

@ Zaggler строго говоря «Dim n (5) Поскольку Int32' больше не является объявлением, это инициализация, и поэтому он не должен выходить за рамки вопроса. Тем не менее, больше нет преимущества использования этого первого синтаксиса (AFAIK - единственное другое место, где возможно первая версия, - это объявление аргумента) и многое другое, второе согласуется с другим использованием «объявления массива» (в качестве типа возврата для свойств или функции, как общий параметр и т. д.). – Sehnsucht

+0

Спасибо за ваш вклад. Я только что нашел [Visual Basic Coding Conventions] (https://msdn.microsoft.com/en-us/library/h63fsef3.aspx) в MSDN, в котором говорится: «Поместите указатель массива на тип, а не на переменную», (например, 'Dim letters4 As String()'). –

ответ

1

Я буду звонить здесь.

Я видел больше стиля 1 в коде, чем стиль два, однако есть некоторые незначительные нечетные несоответствия с синтаксисом, когда дело касается свойств.

Моя теория является причиной скобки после является предпочтительным, чтобы сделать его более совместимым с объявляя свойство, которое является массивом

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

Это, как говорится ... :) использовать списки

Смежные вопросы