2010-07-14 83 views
0

如果我dim一个数组来说,5个元素,如果我去添加第6个元素,它不应该失败吗?我认为这用于要求redim。在.NET 2.0中,我有一个长度为3的字符数组。当我从数据库填充它时,一个记录中有4个字符,并且它已成功将所有4个字符添加到数组中?在ASP.NET 2.0中数组是否真的是固定的长度?

+0

代码示例。 数组是固定长度,列表可以相应增长。 – Robert 2010-07-14 15:14:01

回答

3

如果您将字符数组分配给包含任何大小数组的现有数组变量,它将创建一个所需大小的新数组。原始数组是垃圾收集。

char[] c = new char[3]; 
c = reader.ReadCharacters(5); // read 5 characters into new array, assign to c 
Debug.Print(c.Length);   // Prints 5. 
+0

似乎很奇怪,在将其定义为5之后,分别从db读取时,我必须指定只抓取5个字符。 – donde 2010-07-14 15:16:07

+1

将数组变量看作是对堆中数组的引用。当您将新数组分配给变量时,变量现在保存对新数组的引用,而不是旧数组。 – 2010-07-14 15:19:35

1

只是添加到当前的答案,万一这是问题。在VB.NET中,你声明数组的上限,而不是期望的长度。

例如:

Dim arr(3) as Integer 'length of 4 

该数组有4种元素,0 - 3。它确实有长度为3,如果你在C#表示,这将是这种情况:

int[] arr = new int[3]; //length of 3 

我不知道这是你的问题,但只是为了以防万一

相关问题