关于随机数的一个奇怪问题
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]的串
试试看?
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]的串
试试看?
![](http://www.cnblogs.com/Emoticons/emsmileo.gif)
相关文章推荐
- 关于 weak 变量的一个奇怪问题
- 发现一个奇怪的问题,关于文件名
- 关于Qt编译时问题的一个非常奇怪的解决方法
- 关于空格和回车带来的输入输出不一致问题,使用了一个奇怪的replace
- 一个关于Unicode字符编码的奇怪问题
- [VB.NET]一个关于VB2005中 listbox的奇怪的问题
- 关于在线编辑器的一个奇怪的问题
- [奇怪]一个关于type=submit 和 onsubmit的问题
- 一个关于Unicode字符编码的奇怪问题
- 一个关于字符指针的奇怪问题!
- 关于RelativeLayout的一个奇怪问题
- 关于block的一个奇怪问题
- 关于ATI显卡的一个奇怪问题?
- 一个关于Unicode字符编码的奇怪问题
- 关于adsl宽带猫的一个奇怪问题
- 关于VS一个相当奇怪的问题!!!
- 一个关于inet_ntoa的奇怪问题
- 关于虚继承和析构函数的一个奇怪的问题
- 一个关于Unicode字符编码的奇怪问题
- 一个奇怪的关于脚本的问题