刚学c#,很烦人。都不知道如何入手。请各位指点迷津。
我想做一个7位数的随机显示。(刚学几天)但是发现点button后,偶尔会有重复现象。请问如何解决?
namespace numbers
{
    public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
        }
        Random ra = new Random();
        private void fivebutton_Click(object sender, EventArgs e)
        {
            int aa,bb,cc,dd,ee,ff,gg;
            aa= ra.Next(0, 50);
            bb = ra.Next(0, 50);
            cc = ra.Next(0, 50);
            dd = ra.Next(0, 50);
            ee = ra.Next(0, 50);
            ff = ra.Next(0, 50);
            gg = ra.Next(0, 50);
            ftbox1.Text = aa.ToString();
            ftbox2.Text = bb.ToString();
            ftbox3.Text = cc.ToString();
            ftbox4.Text = dd.ToString();
            ftbox5.Text = ee.ToString();
            ftbox6.Text = ff.ToString();
            ftbox7.Text = gg.ToString();        }

解决方案 »

  1.   

    加个条件if(Random.Next(i)==Random.Next(y)){...}
      

  2.   

    Random ra = new Random(datetime.tostring()); 
    带上当前时间参数。。只要时光不倒流一般不重复。。
      

  3.   

    Random()默认就是使用时间作为随机发生器的种子的,在大量使用随机数的时候,ticks还没来得及改变,现在我们常用的随机发生器都是伪随机数字,是需要种子的,在种子一样时,产生的随机序列是一样的,因此随机数也就不随机了,再每次取随机数之前,我们暂停一毫秒
    System.Threading.Thread.Sleep(1);
    ------------------------------------------------------ 
    example:System.Random random = new Random();
            
            System.Threading.Thread.Sleep(1);        int s = random.Next();
    也可以试一试 可以试一试 System.Security.Cryptography.RNGCryptoServiceProvider ,性能就没有 System.random 快了。
      

  4.   


    但是我照你这样写,不行哦。说没有TOSTRING这个东西。我晕了
      

  5.   


    为什么我照抄你的System.Threading.Thread.Sleep(1);这个上去。但是说1前面的(这个标记无效呢?