调试和运行时得到不同的结果(C#)

时间:2015-09-16 15:35:26

标签: winforms

所以,我通过使用随机对象获取一个随机数,来选择我想要执行此任务的UserControls(实际上,随机选择),并在每个UserControl I用户Random对象中再次获取一个随机数来放置在我的UC。但由于某种原因,当我运行(Ctrl + F5)程序时,每个UserControl包含相同的数字,例如,5个UC' s中的数字为1。 我在另一个帖子中看到你应该在循环之前声明变量(例如Random r)(我让用户控制的循环),但我不能因为我在UserControl中使用Random#s;构造函数。

我做X用户控件的循环是:(num是我们从Random.Next()得到的数字)     for(int i = 0; i

1 个答案:

答案 0 :(得分:0)

UserControl中静态Random成员的快速示例:

public partial class ucSomething : UserControl
{

    private static Random R = new Random(); // only ONE instance of Random that gets reused across all ucSomething's...

    public ucSomething()
    {
        InitializeComponent();
        int number = R.Next(1, 11); // 1 to 10 inclusive
        for(int i = 1; i <= number; i++)
        {
            // ... something ...
        }
    }

}