我在下面编写了这段代码,希望每次运行时都能返回相同的内容,但事实并非如此。可能有人向我解释为什么每次运行时,一个专门播种的随机数生成器会生成一个不同的数字,因为我编写了与命令行应用程序相同的程序,它运行得很好。
这是我的VB.NET代码(破解代码):
'Bunch of WinForms Code
Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.Click
Randomize(3)
MsgBox(Rnd.ToString)
End Sub
这是我正在使用的VB.NET命令行应用程序:
Imports System.Console
Public Module rnum
Sub Main()
Randomize(3)
WriteLine(Rnd.ToString) 'Returns 0.1387751
End Sub
End Module
答案 0 :(得分:4)
如果将控制台代码放入循环中会发生什么?我打赌你会得到相同的数字序列。控制台运行一次并生成第一个结果,而如果您多次单击该按钮,则实质上会循环遍历随机化结果。
当我这样做时,4次我点击按钮4次时会收到相同的4个数字。
Sub Main()
For x As Integer = 0 To 3
Randomize(3)
Console.WriteLine(Rnd.ToString) 'Returns 0.1387751
Next
Console.ReadLine()
End Sub
生产:
0.1387751
0.05591547
0.8356526
0.2308619
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Randomize(3)
MsgBox(Rnd.ToString)
End Sub
产生
第一次点击时为0.1387751
第二次点击时为0.05591547
第三次点击时为0.8356526
第4次点击0.2308619