VB.NET如何声明已知长度的新空数组

SNa*_*Nag 22 vb.net arrays

在VB.NET中是否有一种方法来声明一个数组,然后在代码中将其初始化为已知长度?换句话说,我正在寻找以下C#.NET代码的VB.NET等价物:

string[] dest;
// more code here
dest = new string[src.Length];
Run Code Online (Sandbox Code Playgroud)

我在VB中试过这个,但它没有用.

Dim dest() as string
' more code here
dest = New String(src.Length)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?


注意:我可以确认

Dim dest(src.Length) as string
Run Code Online (Sandbox Code Playgroud)

工作,但不是我想要的,因为我正在寻找分离数组的声明和初始化.

Abb*_*iri 46

在这种情况下VB.NET的语法略有不同.相当于

string[] dest;
// more code here
dest = new string[src.Length];
Run Code Online (Sandbox Code Playgroud)

是

Dim dest As String()
' more code here
dest = New String(src.Length - 1) {}
Run Code Online (Sandbox Code Playgroud)

  • @Luminous:在.NET中创建一个新变量,使用该类或结构的默认值(C#中的`struct`)预填充该变量.对于所有数值结构,此默认值为"Nothing"(在C#中为"null"),对于所有数字结构为"0",对于"布尔"(在C#中为"bool")为"Char`s"和"False".您所看到的是框架使用默认值填充数组; 别的什么都没有. (2认同)

Bri*_*per 8

执行此操作的常规方法是声明数组,如下所示: -

Dim my_array() As String
Run Code Online (Sandbox Code Playgroud)

然后在代码中

ReDim my_array (src.Length - 1)
Run Code Online (Sandbox Code Playgroud)


Mat*_*lko 5

您可以Redim按照已经提到的方式使用,但这是与 C# 等效的 VB 代码

Dim dest As String()
dest = New String(src.Length - 1) {}
Run Code Online (Sandbox Code Playgroud)

尽量避免使用动态数组。泛型List(Of T)更灵活