我知道这是一个非常愚蠢的问题,但任何人都可以帮助我理解这些行:
dim dmnth = array()
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
提前致谢。
我知道这是一个非常愚蠢的问题,但任何人都可以帮助我理解这些行:
dim dmnth = array()
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
提前致谢。
dim dmnth = array()
这是一个无效的声明。在 VBScript 中,您不能在单个语句中声明一个变量并用一个值对其进行初始化。应该是
Dim dmnth
dmnth = Array()
或更短
Dim dmnth : dmnth = Array()
它声明一个变量dmnth并用一个空数组初始化变量。但是,这仅在您想要创建一个空的一维数组时有用,该数组将在保留其值的同时动态增长(也可以通过 实现ReDim arr(-1))。由于您的数组有 3 个维度,因此此初始化毫无意义。下面的命令足以声明和初始化。
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
如果dmnth已经声明,这会将变量的大小调整为 3 维数组,其上限位于Rs_emp_count + 1第 1维、Rs_proj_count + 1第 2维和total_days + 1第 3维。数组的任何内容都将被丢弃。如果尚未声明,则将其声明并初始化为具有给定上限的 3 维数组。dmnth
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
这会将一个从数组字段构造的字符串pname放入pid位置emp_cnt, prj_cnt,的数组字段中0。
dim dmnth = array(); this 设置dmth为函数的返回值array();不管那是什么。这是程序中不必要的步骤;除非array()除了返回值之外还做一些有用的事情。
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1); 这会破坏dmth; 替换dmnth为具有大小的 3D 数组,分别为每个维度Rs_emp_count + 1,Rs_proj_count + 1和total_days + 1。所有元素都被清除。
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"赋值pname & " (" & pid & ")"给(emp_cnt, prj_cnt, 0)数组的元素。请记住,VBScript 中的数组是从零开始的。即 (0, 0, 0) 是有效元素。
首先 dmnth 被声明为一个数组。然后将其重新声明为 3 维数组。然后将 Emp_cnt, Prj_Cnt, 0th entry 设置为 pname & " (" & pid & ")"