C# 字母生成器

C# 字母生成器,c#,random,C#,Random,我在寻找生成随机字母的好算法时遇到了一个问题。我试过这个: public static char GetLetter() { int num = random.Next(0, 26); char letter = (char)('a' + num); return letter; } 我在网上找到的,但它生成的是同一封信,最多两封。例如,如果我想使用上面的代码用随机字母填充4x4矩阵,我得到: C C C C C C C C C

我在寻找生成随机字母的好算法时遇到了一个问题。我试过这个:

public static char GetLetter()
    {
        int num = random.Next(0, 26);
        char letter = (char)('a' + num);

        return letter;
    }
我在网上找到的,但它生成的是同一封信,最多两封。例如,如果我想使用上面的代码用随机字母填充4x4矩阵,我得到:

C C C C
C C C C
C C G G
G G G G

对此有什么想法或建议吗?

几乎可以肯定,您正在创建大量的
Random
实例,而不是对所有调用使用相同的实例。很难说清楚,因为您还没有展示该方法是如何使用的,或者在哪里声明了
random
。我也怀疑你正在使用的代码是否真的是这样,因为它只会生成'a'-'z',而不是'C'或'G'


阅读更多关于此的详细信息,但基本思想是使用
Random

的一个实例。听起来,在每次调用方法之前,您都在实例化
Random
对象的一个新实例

Random
类的默认构造函数,这意味着如果您连续创建多个实例,它们将使用相同的种子,这意味着它们将生成相同的随机数序列

您应该创建
Random
类的单个实例,并在每次调用方法时重复使用该实例