Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#无法生成随机字符串_C#_.net_String_Random - Fatal编程技术网

C#无法生成随机字符串

C#无法生成随机字符串,c#,.net,string,random,C#,.net,String,Random,我不明白C#为什么要这样做 这是我的密码 private string RandomString(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; string randomString = ""; for(int i = 0; i < length; i++) { randomString +

我不明白C#为什么要这样做

这是我的密码

private string RandomString(int length)
    {
        const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        string randomString = "";

        for(int i = 0; i < length; i++)
        {
            randomString += chars.ToCharArray()[new Random().Next(chars.ToCharArray().Length)];
        }

        return randomString;
    }
私有字符串RandomString(int-length)
{
常量字符串chars=“abcdefghijklmnopqrstuvwxyz012456789”;
字符串随机字符串=”;
for(int i=0;i
第一个结果: “WWWWWWWWWWWWWWWW”

第二个结果: “SSSSSSSSSSSSSSSS”

第三个结果:
“mmmmmmmmmm”

当您使用
new random()
生成一个随机数生成器时,它的种子将基于当前时间,因此循环每次迭代的结果都是相同的,因为执行速度很快。相反,您希望在循环外部使用
var rng=new Random()
,并在循环内部使用
rng.Next

停止在每次循环迭代中生成新的随机实例。在循环外声明并初始化它一次。(循环进行得太快,你总是得到相同的种子。)制作一个
Random
对象,因为所有随机对象都有相同的种子(时间)。这很有效,谢谢。我认为它只会创建一个新的Random实例并生成新的integer。奇怪……它确实生成了一个新的
Random
实例,但它们都有相同的种子,因此生成了相同的数字。