今天上午同事遇到一个问题,他要生成一个任意位数的随机数字和大写字母的组合,一个很简单的问题。同事的代码如下:
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位相同的串
试试看?
浙公网安备 33010602011771号