C#定时器和随机数
.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。我们知道,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
我们来看下面的例子
MainForm.cs
usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; usingSystem.Windows.Forms; //usingexample3.RandomHelp; namespaceexample3 { publicpartialclassMainForm:Form { Timertimer=newTimer(); intzheng; intshi; publicMainForm() { InitializeComponent(); button1.Click+=button1_Click; button2.Click+=button2_Click; //if(textBox3.Text!=null) //{ //stringm=textBox3.Text; } voidtimer_Tick(objectsender,EventArgse) { //thrownewNotImplementedException(); //radioButton2_Click(null,null); //doubler=(example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text))); //strings=r.ToString(); //label4.Text=s; if(zheng==1) { intr=(example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text))); strings=r.ToString(); label4.Text=s; } if(shi==2) { doubler=(example3.RandomHelp.GetDoubleRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text))); strings=r.ToString(); label4.Text=s; } } //整数 privatevoidradioButton1_CheckedChanged(objectsender,EventArgse) { RadioButtonr=senderasRadioButton; if(r.Checked==true) { zheng=1; } } //实数 privatevoidradioButton2_CheckedChanged(objectsender,EventArgse) { RadioButtonr=senderasRadioButton; if(r.Checked==true) { shi=2; } } //开始 privatevoidbutton1_Click(objectsender,EventArgse) { timer.Interval=int.Parse(textBox3.Text); //timer.Interval=500; timer.Tick+=timer_Tick; timer.Start(); } //停止 privatevoidbutton2_Click(objectsender,EventArgse) { timer.Stop(); } } }
RandomHelp.cs
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; //usingSystem.Windows.Forms.Timer; namespaceexample3 { classRandomHelp { publicstaticintGetIntRandomNumber(intmin,intmax) { Randomr=newRandom(); intran=r.Next(min,max+1); returnran; } //很不错的算法 publicstaticdoubleGetDoubleRandomNumber(intmin,intmax) { Randomr=newRandom(); //很不错的算法 doublem=r.NextDouble()*max; doublen=r.NextDouble()*min; if(m-n>2.0) returnm; else returnn+3.0; } } }
以上所述就是本文的全部内容了,希望大家能够喜欢。