C#定时器和随机数
投稿:hebedich
在前一篇中我们介绍了键盘和鼠标事件,其实还有一个非常常用的事件,就是定时器事件,如果要对程序实现时间上的控制,那么就要使用到定时器。而随机数也是很常用的一个功能,在我们要想产生一个随机的结果时就要使用到随机数。本文我们就来简单介绍一下定时器和随机数。
.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。我们知道,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
我们来看下面的例子
MainForm.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; //using example3.RandomHelp; namespace example3 { public partial class MainForm : Form { Timer timer = new Timer(); int zheng; int shi; public MainForm() { InitializeComponent(); button1.Click+=button1_Click; button2.Click+=button2_Click; // if (textBox3.Text != null) // { // string m = textBox3.Text; } void timer_Tick(object sender, EventArgs e) { //throw new NotImplementedException(); // radioButton2_Click(null,null); // double r = (example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text), int.Parse(textBox2.Text))); // string s = r.ToString(); // label4.Text = s; if (zheng == 1) { int r = (example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text), int.Parse(textBox2.Text))); string s = r.ToString(); label4.Text = s; } if (shi == 2) { double r = (example3.RandomHelp.GetDoubleRandomNumber(int.Parse(textBox1.Text), int.Parse(textBox2.Text))); string s = r.ToString(); label4.Text = s; } } //整数 private void radioButton1_CheckedChanged(object sender, EventArgs e) { RadioButton r = sender as RadioButton; if (r.Checked == true) { zheng = 1; } } //实数 private void radioButton2_CheckedChanged(object sender, EventArgs e) { RadioButton r = sender as RadioButton; if (r.Checked == true) { shi = 2; } } //开始 private void button1_Click(object sender, EventArgs e) { timer.Interval = int.Parse(textBox3.Text); //timer.Interval = 500; timer.Tick += timer_Tick; timer.Start(); } //停止 private void button2_Click(object sender, EventArgs e) { timer.Stop(); } } }
RandomHelp.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //using System.Windows.Forms.Timer; namespace example3 { class RandomHelp { public static int GetIntRandomNumber(int min,int max) { Random r=new Random(); int ran=r.Next(min, max + 1); return ran; } //很不错的算法 public static double GetDoubleRandomNumber(int min,int max) { Random r = new Random(); //很不错的算法 double m=r.NextDouble() * max; double n = r.NextDouble() * min; if(m-n>2.0) return m; else return n+3.0; } } }
以上所述就是本文的全部内容了,希望大家能够喜欢。