C# Random随机函数使用方法

Random ran = new Random();
int RandKey = ran.Next(1,20);
this.label1.Text = ran.Next().ToString();//将第一个随机数显示在label1中

为什么运行以后,随机数不在1,20以内呢

在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等。
  在 C# 中,一般都用 Random 产生随机数,它可任意指定产生随机数范围。Random 结合数组,可以产生一些特殊范围的随机数,以满足特殊的需要。

  一、用 Random 产生指定范围随机数
  1、产生指定上限的随机数(如产生100以内的随机数)
  Random ran = new Random();
  int n = ran.Next(100);

  2、产生指定上下限的随机数(如产生100到1000的随机数)
  Random ran = new Random();
  int n = ran.Next(100, 1000);

  二、用 Random 结合数组产生指定范围随机数
  在某些情况下,随机数只能取一些特殊指定的值,如不连续的数字或指定的一些单词等,此时仅用 Random 无法达到要求,必须借住数组才能实现。实现思路大概是这样:先把这些特殊的值存到数组中,然后把数组的长度作为 Random 的上限产生随机数,此随机数正是数组的下标,根据该下标取得数组的值。
  1、示例一
  假如要产生不连续的随机数,代码如下:
  public string GetRandom(string[] arr)
  {
    Random ran = new Random();
    int n = ran.Next(arr.Length - 1);
    return arr[n];
  }
  调用方法:
  string[] arr = { "25", "28", "30", "50", "60" };
  GetRandom(arr);

  2、示例二
  假如要用指定单词作为随机数的取值,代码实现跟示例一相同,所不同的仅是随机数的取值,所以只要定义一个单词数组直接调用上面代码即可。
  调用方法:
  string[] arr = { "red", "green", "blue", "orange", "white" };
  GetRandom(arr);
  以上两种产生指定随机数的方法,都通过测试,可根据实际开发需要灵活选择,一般情况都是直接用 Random 就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-08
写错了呢~,这行 this.label1.Text = ran.Next().ToString();

应该是 this.label1.Text = RandKey.ToString();追问

谢谢啊,你说得没错,是这行写错了,但是为什么会出现这样的情况呢,原来this.lable1.text=ran.next().tostring(),是什么意思呢

追答

ran.next() 就是没有限制,不过就是非负的整数;


本回答被提问者采纳
相似回答