在 C# 中实例化一个数组 - 从 VB 转换 [重复]

Posted

技术标签:

【中文标题】在 C# 中实例化一个数组 - 从 VB 转换 [重复]【英文标题】:Instantiate an array in C# - converted from VB [duplicate] 【发布时间】:2017-06-07 11:23:00 【问题描述】:

我打算将一些遗留的 VB 代码转换为 C#。

原代码为Me.variable1 = New Integer()

我使用了一些转换网站,得到的答案是this.variable1 == new int[]。 但是,IDE 给出错误“[] 内的索引数量错误;预期为 1”。 看来我必须声明数组的大小。

VB 代码为我们提供了多大的数组?是尺寸 1 还是没有尺寸?

谢谢!

【问题讨论】:

Arrays Tutorial Me.variable1 之后会发生什么?你在改变数组成员的数量吗? VB 语句创建一个空数组。元素是以后添加的吗?如果是这样,请考虑使用System.Collections.ArrayList 或任何其他合适的集合。​​ 请注意,欺骗链接是“c# Instantiate array”的“大约”1,030,000 次谷歌点击列表中的第 1 项(仅搜索 SO)。 【参考方案1】:

this.variable1 = new int[] 应该可以工作。它只是创建一个空数组。

不幸的是,你不能向这个数组添加任何东西,但是如果你从其他东西(例如服务或另一个调用)获取你的数组,你可以将该数组分配给这个数组。

这是一个工作示例。

https://dotnetfiddle.net/1xY2XV

【讨论】:

@upvoter,注意说明这个错误的答案是如何有用的。 It just creates an empty array== 怎么可能 已编辑。谢谢@un-lucky!【参考方案2】:

== 在这里用作比较运算符,而不是赋值运算符。您必须使用= 进行分配。您必须指定数组的大小,否则您必须初始化其元素。所以你应该这样使用:

this.variable1 = new int[10];

或者像这样:

this.variable1 = new int[]  10, 12, 15, 3, 2, 4, 19 ;

这个 (int[] variable1 = new int[] ;) 是一个空数组的有效声明,但你不能给这个数组分配任何东西。

【讨论】:

谢谢!既然VB编码创建了一个空数组,我们可以在这个VB代码创建的空数组中添加元素吗?

以上是关于在 C# 中实例化一个数组 - 从 VB 转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

声明和实例化一个 c# 数组实际上是啥意思?

在 C# 中是不是可以用值实例化一个类? [关闭]

如何将 VB 项目转换为 C# 项目 [关闭]

使用 vb.net 以编程方式将 Access 数据库从 03 转换为 07?

从 VB 转换为 C#:bitmap.save() 参数错误

将 SQL 命令从 vb .net 转换为 C#