C# Random.Next()始终返回相同的值

C# Random.Next()始终返回相同的值,c#,C#,我不想获取ArrayList的随机实例,但我的代码总是返回相同的值 public static void randomEvent(){ Random rnd = new Random(); int which = rnd.Next(1,events.Count); Debug.WriteLine("Which event: " + which); Debug.WriteLine("Count Even

我不想获取ArrayList的随机实例,但我的代码总是返回相同的值

public static void randomEvent(){
            Random rnd = new Random();
            int which = rnd.Next(1,events.Count);
            Debug.WriteLine("Which event: " + which);
            Debug.WriteLine("Count Events: "+ events.Count);
            ((Event) events[which-1]).write();
        }

事件的大小。计数为2。

Move
Random rnd=new Random()
randomEvent()方法之外

private static Random rnd = new Random();

public static void randomEvent(){
    int which = rnd.Next(1,events.Count);
    Debug.WriteLine("Which event: " + which);
    Debug.WriteLine("Count Events: "+ events.Count);
    ((Event) events[which-1]).write();
}

移动
Random rnd=new Random()
randomEvent()方法之外

private static Random rnd = new Random();

public static void randomEvent(){
    int which = rnd.Next(1,events.Count);
    Debug.WriteLine("Which event: " + which);
    Debug.WriteLine("Count Events: "+ events.Count);
    ((Event) events[which-1]).write();
}

如果
events.Count
为2,则调用
rnd.Next(1,2)


表示第一个参数是包含的,第二个参数是独占的。您返回一个int。您需要一个int x,其中1如果
events.Count
为2,则您要调用
rnd.Next(1,2)


表示第一个参数是包含的,第二个参数是独占的。您返回一个int。您需要一个int x,其中1个static关键字导致问题请注意,
Random
实例不是线程安全的,因此如果事件可能由多个线程触发,您需要一种处理方法。static关键字导致问题请注意,
Random
实例不是线程安全的,因此,如果事件可能由多个线程触发,则需要一种处理方法。