VB.Net 中变量初始化行的作用是什么?

What does variable-initialization line do in VB.Net?

谁能告诉我以下 VB.Net 行正在初始化什么:

Dim x As SomeType() = New SomeType(0) {}

x 变量是什么?它是一个数组吗?例如,如何将其翻译成 C#?

我猜SomeType可能是匿名类型,但仍然没有线索...

它只是声明和初始化给定类型的数组。在 C# 中,我认为它非常相似:

SomeType[] x = new SomeType[0] { };

Is it an array?

是的。 VB 对数组使用 () 而不是 C# 的 [].

I guess SomeType is probably an anonymous type

不,它和其他类型一样是定义好的静态类型。

行:

Dim x As SomeType() = New SomeType(0) {}

声明了一个 SomeType 对象数组,它可以容纳 SomeType 的一个实例。

当声明对象数组时,传递给构造函数的值是数组的最大索引。所以这个声明基本上是在声明一个长度为 1 的数组。该行的 {} 部分是您可以定义应存储在数组中的值的地方。如果您要将 SomeType 更改为 integer,您可以像这样实例化并填充您的数组:

Dim intArray as Integer() = New Integer(0) {7}

这会给存储在 intArray 变量中的第一个实例赋值 7

SomeType 不是匿名类型。 SomeType 将是一个 class,必须在您的应用中的某处定义。

在 C# 中,我认为语法如下所示:

SomeType[] x = new SomeType[0];

我不确定您将如何在 C# 中完成 VB.NET 行的 {} 部分。