可能重复:
随机数生成器仅生成一个随机数
我下面的代码正在这样做,我不知道为什么:
如果我的 toEmailAddresses 数组包含 2 个电子邮件地址,uniqueID[0]
并且uniqueID[1]
将返回从Util.CreateRandomPassword(16)
方法调用生成的相同值。
如果我单步执行代码,那么两者都uniqueID[0]
将uniqueID[1]
包含应有的不同值。但是如果我像往常一样运行代码,出于某种原因,相同的值会分配给我的uniqueID
数组: uniqueID[0]
并且uniqueID[1]
将包含相同的值。
我什至放入string tempRandomPassword = null
然后将其分配给从CreateRandomPassword
方法返回的值,但这也不起作用。
我究竟做错了什么?
//toEmailAddresses.Count array will have two e-mail addresses in it.
string[] uniqueID = new string[2];
for (int i = 0; i < toEmailAddresses.Count(); i++)
{
string tempRandomPassword = null;
tempRandomPassword = Util.CreateRandomPassword(16);
uniqueID[i] = tempRandomPassword;
}
public static string CreateRandomPassword(int passwordLength)
{
//http://madskristensen.net/post/Generate-random-password-in-C.aspx
string allowedChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789";
char[] chars = new char[passwordLength];
Random rd = new Random();
for (int i = 0; i < passwordLength; i++)
{
chars[i] = allowedChars[rd.Next(0, allowedChars.Length)];
}
return new string(chars);
}