C#到VB.NET数组初始化

时间:2011-09-15 19:03:19

标签: c# vb.net arrays

在C#中,我可以声明这样的数组变量

object[] Parameters;

初始化就像这样:

Parameters = new object[20];

在Visual Basic中,声明和初始化数组非常简单:

Dim Parameters(19) As Object
Dim Parameters As Object(19)    ' Alternative syntax

如何初始化VB.NET中已声明的数组变量

Parameters = New Object(19)不起作用。


例如,我如何将以下内容翻译成VB.NET?

int value = 20;
object[] Parameters;
if (value > 10)
{
    Parameters = new Object[20];
}

3 个答案:

答案 0 :(得分:7)

基本上与其他Visual Basic代码相同,但我会利用这个机会添加一些风格:

Dim value = 20                ' Type inference, like "var" in C#
Dim parameters() As Object    ' Could also be "parameters As Object()"
If value > 10 Then
    parameters = New Object(19) {}   ' That's right, Visual Basic uses the maximum index
End If                               ' instead of the number of elements.

局部变量(parameters)应以小写字母开头。这是一个既定的约定,它有助于在Stack Overflow中获得正确的语法高亮(这也适用于原始的C#代码)。

那么,为什么Visual Basic中需要大括号{}?在Visual Basic中,方法调用和数组访问都使用括号(...)。因此,New X(4)可能意味着:

  • 创建X类型的新对象,并将4传递给构造函数,
  • 创建X
  • 的5元[sic]数组

要区分这两种情况,请在第二种情况下使用数组初始化程序语法。通常,大括号包含实际值:

myArray = New Integer() {1, 2, 3}

答案 1 :(得分:6)

Dim value As Integer = 20
Dim Parameters() as object
If value > 10 then
  Parameters = new Object(value - 1){}
end if

答案 2 :(得分:4)

如果你像我一样懒,你可以使用online converter产生:

Dim value As Integer = 20
Dim Parameters As Object()
If value > 10 Then
    Parameters = New [Object](19) {}
End If

如果你不喜欢我,想要学习VB.NET,请转到VB.NET语法的文档并开始阅读。