Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic Randomize()与新随机_Vb.net_Random - Fatal编程技术网

Vb.net Visual Basic Randomize()与新随机

Vb.net Visual Basic Randomize()与新随机,vb.net,random,Vb.net,Random,似乎不再使用Randomize()&Rnd() 相反,人们会做出这样的事情: Dim rng as New Random() Dim randomNo as Integer = rng.Next(10) ' this is a random number between 0 and 10. Dim anotherRandomNo as Integer = rng.Next(10) ' a different random number. 有人能告诉我为什么在大多数情况下这被认为是“更好”的吗?

似乎不再使用
Randomize()
&
Rnd()

相反,人们会做出这样的事情:

Dim rng as New Random()
Dim randomNo as Integer = rng.Next(10) ' this is a random number between 0 and 10.
Dim anotherRandomNo as Integer = rng.Next(10) ' a different random number.

有人能告诉我为什么在大多数情况下这被认为是“更好”的吗?

有几个原因

Random
具有更强大的功能。。看一看

而且,更重要的是,旧的
随机
内置于
随机
对象的实例化中。默认情况下,不带随机化的
Rnd
总是以相同的种子编号开始。如果在程序开始时没有使用“随机化”,则每次运行时,它都会生成相同的数字序列


最后,在内部,
Random
对象以不同的方式生成具有更好随机性的数字。

请将您的代码作为代码,而不是问题中的明文。仅供参考:
rng。下一步(10)
生成一个介于
0
9
之间的整数。
Randomize()
Rnd()
提供了VB6(pre-.NET)的向后兼容性。说它们不再被使用,实际上就是说它们在2001年就过时了。现在已经17年过去了,他们应该已经完全死去了。
Random
类是BCL的一部分。
System.Security.Cryptography
中的类是您在做任何需要强加密随机数的事情时真正想做的。非常感谢,这非常有帮助