我使用Random.next(),为什么每次返回值都一样?

QQ46128558 2008-08-04 03:46:35
我是这样使用的:
For j=1 to 10
lstData.Items.Add(GetRandomInteger(10, 20))
Next


'返回随机整数(有问题)
Public Function GetRandomInteger(ByRef intLBoundValue As Integer, ByRef intUBoundValue As Integer) As Integer
Dim objRandom As New Random

Try
Return objRandom.Next(intLBoundValue, intUBoundValue + 1)
Catch ex As Exception
Return 0
End Try

objRandom = Nothing
End Function

几hu每次返回都一样(指循环时),请问如何解决?谢谢!
...全文
582 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztltgg 2008-08-04
  • 打赏
  • 举报
回复
objRandom.Next 这个函数不会抛出异常的吧?何必放到try里去,还弄个函数呢?

Dim objRandom As New Random

For j=1 to 10
lstData.Items.Add(objRandom.Next(10, 20+1))
Next

就行了
whoami333 2008-08-04
  • 打赏
  • 举报
回复
你看一下random的说明,不要用一次就new一次。
wdgphc 2008-08-04
  • 打赏
  • 举报
回复 1
因为你每次都是Dim objRandom As New Random ,而这个随机数是通过时间作种子算出的,由于程序运行的快,所以可能循环时每次种子都是一样的,所以随机数也是一样的.
你可以把objRandom 定义为全局变量,只初始化一次,以后每次objRandom.Next都是不一样的了.

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧