在同一个页面里我要用到多个随机数字
于是写了个方法
public static string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
for (int i = 0; i < len; i++)
{
strbu.Append((new Random()).Next(10));
}
return strbu.ToString();
}
但是在同一个页面调用时,得到的随机数是完全一样的,为什么会这样呢?
顺便说一下,本来是做文件上传,用的是时间,但得到的时间有时是一样,就想到用随机数,哪知道,几次产生随机数也是一样的
于是写了个方法
public static string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
for (int i = 0; i < len; i++)
{
strbu.Append((new Random()).Next(10));
}
return strbu.ToString();
}
但是在同一个页面调用时,得到的随机数是完全一样的,为什么会这样呢?
顺便说一下,本来是做文件上传,用的是时间,但得到的时间有时是一样,就想到用随机数,哪知道,几次产生随机数也是一样的
DateTime date = DateTime.Now;
Random ran = new Random( date.Ticks );
strbu.Append(ran.Next(10));
返回的是0
Random ran = new Random( date.Ticks );
strbu.Append(ran.Next(10));UP
new Random()没有这样的一个重载
Random ran = new Random((int)date.Ticks);
strbu.Append(ran.Next(10)); Console.WriteLine(strbu.ToString());
没用的,我这样调用
Response.Write( Common.Tool.GetRandom(7)+"<br>");
Response.Write(Common.Tool.GetRandom(7) + "<br>");
Response.Write(Common.Tool.GetRandom(7) + "<br>");
Response.Write(Common.Tool.GetRandom(7) + "<br>");
出来的是:
4444444
4444444
4444444
4444444
http://blog.csdn.net/kitegirl/archive/2007/06/26/1666449.aspx
for(int i = 0; i< 10; i++)
{
this.textBox1.Text += rdn.Next(7).ToString() + "\n";
}要用一个种子。
public string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
Random random = new Random();
for (int i = 0; i < len; i++)
{
strbu.Append(random.Next(10));
}
return strbu.ToString();
}
但我几次调用这个方法的结果还是一样的,只是结果内的数字不一样
我只是想几次调用产生的结果不一样
{
string RandomStr = "";
Random rand = new Random();
while (RandomStr.Length < StrLength)
{
RandomStr = RandomStr + Base[rand.Next(Base.Length)];
}
return RandomStr;
}public string GetRandom(int Length)
{
return GetRandom("0123456789",Length);
}
public string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
for (int i = 0; i < len; i++)
{
strbu.Append(random.Next(10));
}
return strbu.ToString();
}
把random设置为对象属性。
就是说同一个页面调用的是同一个种子
{
StringBuilder strbu = new StringBuilder();
Random r = new Random();
for (int i = 0; i < len; i++)
{
strbu.Append(r.Next(10));
}
return strbu.ToString();
}