我正在编写一个C#应用程序,该应用程序应生成一个随机密码。我的想法是使用“随机”生成10个不同的字符并将它们组合成1个字符串。
所以我做了这个方法,它返回一个随机的Char:
public static string RandomChar()
{
Random random = new Random();
var chars ="$%#@!*abcdefghijklmnopqrstuvwxyz1234567890?;:ABCDEFGHIJKLMNOPQRSTUVWXYZ^&".ToCharArray();
string indexValue = chars.Getvalue(random.Next(chars.Length)).ToString();
return indexValue;
}
此方法到目前为止可以正常工作。
然后,我执行以下方法来生成具有10个随机字符的单个字符串:
public static string RandomPwd()
{
string Pwd = "";
for(int i = 0; i < 11; i++)
{
Pwd= Pwd + RandomChar();
}
return Pwd;
}
然后我仅从onClick事件中调用RandomPwd()方法。 (我不认为必须显示此onClick事件,因为它唯一要做的就是调用RandomPwd()。)
奇怪的是,如果我使用
上的断点启动应用程序string a = RandomPwd();
“ a”将始终是10个字符的SAME字符字符串,例如“ UUUUUUUUUUU”。
但是如果我在以下位置设置断点:
for(int i = 0; i < 11; i++)
{
Pwd= Pwd + RandomChar();
}
return Pwd;
然后我看到Pwd充满了10个不同的字符。而且,如果我继续浏览,还会发现
string a = RandomwPwd();
现在是10个字符长的不同字符。
因此,只要我手动完成操作,该应用程序就可以正常运行,但是,如果我不这样做,则不会采用其他随机数。
我已经在Google和此处搜索了该问题,但是找不到任何可以解决我的问题的东西。
也许其他人以前曾经经历过,并会分享他的解决方案。
非常感谢!