CREATE TRIGGER trumpist BEFORE INSERT ON auth_user FOR EACH ROW EXECUTE PROCEDURE trumpisizer();
我得到的不是0的最小值
答案 0 :(得分:2)
数组的索引为零,并且使用最高可寻址索引进行声明,因此当您
Dim Temp(3)
您正在创建具有 4 个插槽[0, 1, 2, 3]
的阵列。 IMO,这是语言设计的一个高度可疑的地方。
在创建数组时,所有插槽均使用值0
初始化。然后将值放在索引[1, 2, 3]
中,而不是索引0
中。
因此,数组将始终在索引0
的{{1}}处具有一个值。
您可以首先通过声明0
有3个插槽而不是4个插槽来解决此问题:
Temp
然后调整循环:
Dim Temp(2)
https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/arrays/
答案 1 :(得分:1)
为将来参考,您可以使用GetLowerBound()和GetUpperBound()获取数组的下限和上限。即使您在稍后的某个时间更改数组的大小,这也将使您的代码正常工作(而不是硬编码循环的上限):
For i As Integer = Temp.GetLowerBound(0) To Temp.GetUpperBound(0)
Debug.Print(i & ": " & Temp(i))
Next