读书人

求解循环输出的内容为什么总是一样呢,

发布时间: 2012-05-16 23:40:10 作者: rapoo

求解循环输出的内容为什么总是一样呢

C# code
namespace test{    class Program    {        static void Main(string[] args)        {            //测试产生的验证码            Program checking= new Program();            for (int i = 0; i < 3; i++)            {                               string str= checking.run(4);                Console.WriteLine(asd);            }            Console.Read();        }        /// <summary>        /// 生成验证码        /// </summary>        /// <param name="checkingLength">产生验证码的长度</param>        /// <returns>最后生成的验证码</returns>        public string run(int checkingLength )        {            //出现的随机数            string str = "1,2,3,4,5,6,7,8,9,0,A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z";            //最后返回的验证码            string checkng = "";            Random ran = new Random();            //接收随机码的数组            string[] stringArry = str.Split(',');            //随机数组的下标值            int amout = 0;                        for (int i = 0; i < checkingLength; i++)            {                //产生验证码数组的下标               int num = ran.Next(62);                //判断数组下标是否相同               if (num == amout)               {                   //下标值改变                   amout += i;                   //果如改变的下标值超过数组索引界限                   if (amout > stringArry.Length)                       //将其数组下标缩小                       amout = amout - (num / 2);               }               else               {                   amout = num;               }                //拼接产生的验证码                checkng += stringArry[amout];            }            return checkng;        }    }}

这是我写的一个简单的验证码产生的算法,我想测试下产生的数据。结果显示的都一样,但是我打上断点输出的内容却不一样?很迷糊额,难道我这样测试不对嘛

[解决办法]
随即数是以为种子的,如果运行太快,时间种子酒没变,产生相同的随即数.
添加这个命名空间using System.Threading;
然后在加上我标注颜色的一句;

读书人网 >C#

热点推荐