在 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 TutorialMe.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 转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 vb.net 以编程方式将 Access 数据库从 03 转换为 07?