我需要创建一段独特的文本来测试另一个项目,因此我创建了一个简单的程序来生成长度为X的随机字符串。
问题在于,如果我调用它一次,我会得到一个随机字符串;如果我再次调用它(例如在for循环中),我将在整个循环执行期间得到相同的字符串。
我觉得它被缓存了,但我不知道.net是否会这样做,我现在感到很困惑。
调用代码:
StreamWriter SW = new StreamWriter("c:\\test.txt");
int x = 100;
while (x >0)
{
SW.WriteLine(RandomString(20));
x--;
}
这是方法:
private static string RandomString(int Length)
{
StringBuilder sb = new StringBuilder();
Random randomNumber = new Random();
for (int i = 0; i <= Length; ++i)
{
int x = randomNumber.Next(65, 122);
sb.Append(Convert.ToChar(x));
}
return sb.ToString();
}
以下是输出结果:
"VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
..................
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB
VEWMCQ`Fw]TvSFQawYnoB"
那么,我认为Random.next()总是会返回一个新的随机数,这是怎么回事?