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

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相同的串

如果单步调试F9 就得到随机的串

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

相关文章:

  • 2021-11-06
  • 2021-06-04
  • 2022-12-23
  • 2021-06-24
  • 2021-12-04
  • 2021-09-04
猜你喜欢
  • 2021-10-17
  • 2021-10-28
  • 2021-05-20
  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案