求问这个随机数生的方法不时的会报错:确保您没有无限循环或无限递归,但看不懂,问一下应当怎么样更改?
private string CreateRandomNum(int NumCount) { string allChar = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //TODO char[] allCharArray = allChar.ToCharArray(); string randomNum = ""; int temp = -1; Random rand = new Random(); for (int i = 0; i < NumCount; i++) { if (temp < -1) { int k = (int)(DateTime.Now.Ticks); rand = new Random(i * temp * (k)); } int t = rand.Next(35); if (temp == t) { return CreateRandomNum(NumCount); } temp = t; randomNum += allCharArray[t]; } return randomNum; }
解决方案
40
Process is terminated due to StackOverflowException.
进程由于堆栈溢出异常而终止。
将 Random rand = new Random(); 移到 CreateRandomNum 方法之外即可
其实即便不出现异常,你那分段连续相同的结果也是应该进行修改算法的
进程由于堆栈溢出异常而终止。
将 Random rand = new Random(); 移到 CreateRandomNum 方法之外即可
其实即便不出现异常,你那分段连续相同的结果也是应该进行修改算法的