string strchar = "0,1,2,3,4,5,6,7,8,9" ;
        string[] VcArray = strchar.Split(',') ;
        string  VNum = "" ;
        //记录上次随机数值,尽量避免产生几个一样的随机数
        int temp = -1 ;    
        //采用一个简单的算法以保证生成随机数的不同
        Random rand =new Random();
        for ( int i = 1 ; i < 5 ; i++ ) 
        {    
            if ( temp != -1) 
            {
                rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));-----这句什么意思
            }    
            int t=rand.Next(10);
            temp = t  ;
            VNum += VcArray[t];
        }
        Session["Valid"] = VNum;
        return VNum ;//返回生成的随机数

解决方案 »

  1.   

    i*temp*unchecked((int)DateTime.Now.Ticks))主要是这句
      

  2.   

    利用系统时钟产生新的随机数种子,unchecked()是为了防止溢出是产生错误。
      

  3.   

    不做溢出检查,也就是说不查里面那个数是不是超过int的表示范围~~~~
      

  4.   

    比如说 DateTime.Now.Ticks 超出 Int32 的范围时,unchecked() 使得 (int)... 不产生溢出错误,而是直接取低32位。
      

  5.   

    unchecked()表示强制不做益出检查
      

  6.   

    i*temp*unchecked((int)DateTime.Now.Ticks)) 
    这句起什么作用?原理是什么?谢谢大家了
      

  7.   

    i=1的时候
    rand = 1*-1*(单位是10^-7s的精确时间序列化的数字)
    ...略