Vb.net 尝试理解和翻译一小段VB代码 我正把一些VB代码转移到另一种语言中,但我不明白这里应该发生什么。 Dim foo(7,0) as Date

Vb.net 尝试理解和翻译一小段VB代码 我正把一些VB代码转移到另一种语言中,但我不明白这里应该发生什么。 Dim foo(7,0) as Date,vb.net,Vb.net,随后在代码中我得到了类似于foo(5,3)的东西,我相信输出是一个日期对象。没有编写任何函数来描述foo,因此我假设它是一个多维数组。但演员是约会对象吗?我很困惑,请帮帮我。我也不知道他们发生了什么,因为: Dim foo(7,0) as Date 声明一个二维数组,该数组实际上是一维数组,因为第二个维度的上限为0 。。。然后你声称第二个维度后来被索引为3,这超出了界限foo(5,0)可以,但是第六行(如果您想这样考虑5)有一列,因此检索第四行是一个IndexOutOfRangeExcepti

随后在代码中我得到了类似于
foo(5,3)
的东西,我相信输出是一个日期对象。没有编写任何函数来描述
foo
,因此我假设它是一个多维数组。但演员是约会对象吗?我很困惑,请帮帮我。

我也不知道他们发生了什么,因为:

Dim foo(7,0) as Date
声明一个二维数组,该数组实际上是一维数组,因为第二个维度的上限为0

。。。然后你声称第二个维度后来被索引为3,这超出了界限
foo(5,0)
可以,但是第六行(如果您想这样考虑5)有一列,因此检索第四行是一个IndexOutOfRangeException。大概从那时到现在的某个时候,这已经是ReDim了

要让调试器帮助您,请运行代码,停止并指向
foo
,或查看“局部变量”窗口:

红色边界是变量分析器作为工具提示和局部变量。它将日期显示为二维数组。它还列出了所有内容。蓝色边界是尝试访问在索引0处停止的数组的索引3时得到的错误

使2D阵列实际具有可感知的宽度:


你可以看到它只是一个日期块

我猜是一个二维日期数组。数组中的每个元素都将是一个日期。您可以将
Dim foo(,)声明为日期
Dim foo声明为日期(,)
。这两个片段是等价的。如果要创建数组,则必须指定大小。如果在声明中指定大小,则只能使用第一种语法。还有什么其他语言?如果你告诉我们什么,那么一个既懂又懂的人可以告诉这个VB,并帮助你理解8x1大小的2D数组,日期为类型。多亏了你和@jmchiliney,我现在对发生的事情和VB的语言结构有了更好的理解。您的“ReDim”注释帮助我找到了一个函数,在该函数中,
foo
是通过引用传递和修改的。