///<summary>
///返回随机数
///</summary>
///<paramname="VcodeNum"></param>
///<returns></returns>
publicstringRndNum(intVcodeNum)
{
stringVchar="0,1,2,3,4,5,6,7,8,9";
string[]VcArray=Vchar.Split(',');
stringVNum="";//由于字符串很短,就不用StringBuilder了
inttemp=-1;//记录上次随机数值,尽量避免生产几个一样的随机数
//采用一个简单的算法以保证生成随机数的不同
Randomrand=newRandom();
for(inti=1;i<VcodeNum+1;i++)
{
if(temp!=-1)
{
rand=newRandom(i*temp*unchecked((int)DateTime.Now.Ticks));
}
//intt=rand.Next(35);
intt=rand.Next(9);
if(temp!=-1&&temp==t)
{
returnRndNum(VcodeNum);
}
temp=t;
VNum+=VcArray[t];
}
returnVNum;
}
调用时只需要stringcode=RndNum(4);
这样取得了4位随机数.
如果需要字母随机数,则
stringVchar="0,1,2,3,4,5,6,7,8,9,A,B";把字母加上去.
同时修改intt=rand.Next(9);中的9改成Vchar的长度但可.
|