您的位置:首页 > 其它

关于随机数的一个奇怪问题

2005-01-25 11:40 507 查看
今天上午同事遇到一个问题,他要生成一个任意位数的随机数字和大写字母的组合,一个很简单的问题。同事的代码如下:

private string GetRandomString(int nDigit)

{

    //将数字和大写字母组成一个字符串

    string[] arySource={"0","1","2","3","4","5","6","7","8","9"

                       ,"A","B","C","D","E","F","G","H","I","J","K","L"

                   ,"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};

    string strResult = "";

    string strTemp = "";

    for (int i = 0; i < nDigit; i++)

    {

        strTemp = arySource[new Random().Next(36)];

        strResult += strTemp;

    }

 

    return strResult;

}

然后在另外一个按钮的事件里

private void Button1_Click(object sender, System.EventArgs e)

{

    TextBox1.Text = GetRandomString (4);

}

 

如果运行程序,总是得到4位相同的数字或者字母。

但是,如果在for循环内部设置了断点,然后F9单步跟踪,就产生了4位不同的数字或者字母。

就是这样一个结论

如果F5运行程序就得到4位相同[/b]的串

如果单步调试F9 就得到随机[/b]的串

试试看?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: