VB6随机化功能?

时间:2011-07-07 18:08:59

标签: random vb6 legacy-code

我正在处理一些(凌乱的)遗留代码,我在Form_Load中看到了这个代码段:

[other code]

Dim r As Byte
Dim g As Byte
Dim b As Byte
Randomize

[more code]

对于VB的许多部分我还是比较新的,所以请原谅我的无知,如果它是公然的并且打击你的脸,但是有谁能告诉我这里发生了什么?我对变量声明很好,那些有意义。但是什么是“随机化”只是挂在那里?这应该是VB的随机函数吗?如果是这样,它实际上并不是在这里做任何事情,是吗?我最初认为它是调用原始设计者所写的函数/子函数,但不存在类似的东西。程序中没有错误(虽然有数百条无用的行),如果我评论“随机化”,似乎没有任何改变。

3 个答案:

答案 0 :(得分:5)

Randomize使用当前系统时间为随机数生成器播种(如果您习惯使用C或C ++,则对应srand(time(NULL)))。与任何其他语言一样,随机生成器通常只应播种一次(在应用程序启动时),但常见的错误是将其播种到一些被重复调用的方法中,所以如果是这种情况我就不会感到惊讶

但请注意,如果没有调用Randomize,每次程序启动时都会生成相同的随机数序列。

答案 1 :(得分:2)

随机化种子随机数发生器。如果函数“Rnd”(生成一个随机数)出现在代码的其他地方,则Randomize很可能没用。

答案 2 :(得分:1)

对于Randomize [optional seed]的所有后续调用,

Rnd 种子随机数生成器。