VB6随机化功能?

ere*_*per 0 vb6 random legacy-code

我正在处理一些(杂乱的)遗留代码,我在以下内容中遇到了这个代码段Form_Load:

[other code]

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

[more code]
Run Code Online (Sandbox Code Playgroud)

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

Aas*_*set 5

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

但请注意,在没有任何调用的情况下Randomize,每次程序启动时都会生成相同的随机数序列.

  • @erekalper:"远离它会产生任何空间感的地方" - 非常熟悉的现象的优秀表述;-) (2认同)