Вот кусок кода VB.Net:Преобразование VB.Net массива в C#
Dim left As Object = NewLateBinding.LateGet(NewLateBinding.LateGet(sender, Nothing, "PressedLink", New Object(0 - 1) {}, Nothing, Nothing, Nothing), Nothing, "ItemName", New Object(0 - 1) {}, Nothing, Nothing, Nothing)
Мой вопрос с:
New Object(0 - 1)
Онлайн конвертер преобразованного его на следующий код C# :
New Object[0 - 1]
Я сделал некоторые исследования в коде массива VB.Net и выглядеть (0 - 1) просто говорю, какие номера запуски индекса и заканчивается. Однако, в C# компилятор видит это как негативный 1. У меня есть ощущение, что в C# это должно быть:
New Object[2]
Я просто хотел, чтобы увидеть, если кто-то, кто более знаком с VB.Net может проверить это для я так знаю, что делаю это правильно или нет.
Хорошо, я считаю, что это тот ответ, который я ищу, поскольку в фигурных скобках нет ничего, что можно было бы сделать после New Object (0 - 1). Спасибо за помощь! –
Я не думаю, что наличие ничего в фигурных скобках особенно важно для того, чтобы быть массивом нулевой длины. например в VB.NET, 'New Object (4) {}' даст вам массив из 5 элементов, содержащий нули, поскольку исходные значения не заданы. '{}' Требуется только в VB.NET, даже если не инициализировать массив, в то время как это необязательно в C#. Это также показывает возможную причину стиля, используемого исходным программистом - «Новый объект (5 - 1) {}» может быть напоминанием о том, что VB.NET является немного странным в том, как объявляются размеры массива, а также «Новый Объект (4) {} '- оба массива - 5 элементов! – Mark