我正在处理一些(凌乱的)遗留代码,我在Form_Load
中看到了这个代码段:
[other code]
Dim r As Byte
Dim g As Byte
Dim b As Byte
Randomize
[more code]
对于VB的许多部分我还是比较新的,所以请原谅我的无知,如果它是公然的并且打击你的脸,但是有谁能告诉我这里发生了什么?我对变量声明很好,那些有意义。但是什么是“随机化”只是挂在那里?这应该是VB的随机函数吗?如果是这样,它实际上并不是在这里做任何事情,是吗?我最初认为它是调用原始设计者所写的函数/子函数,但不存在类似的东西。程序中没有错误(虽然有数百条无用的行),如果我评论“随机化”,似乎没有任何改变。
答案 0 :(得分:5)
Randomize
使用当前系统时间为随机数生成器播种(如果您习惯使用C或C ++,则对应srand(time(NULL))
)。与任何其他语言一样,随机生成器通常只应播种一次(在应用程序启动时),但常见的错误是将其播种到一些被重复调用的方法中,所以如果是这种情况我就不会感到惊讶
但请注意,如果没有调用Randomize
,每次程序启动时都会生成相同的随机数序列。
答案 1 :(得分:2)
随机化种子随机数发生器。如果函数“Rnd”(生成一个随机数)出现在代码的其他地方,则Randomize很可能没用。
答案 2 :(得分:1)
Randomize [optional seed]
的所有后续调用, Rnd
种子随机数生成器。