C#生成随机数的两种方法

概述

随机数字在生活中的应用非常普遍,比如年会随机抽奖、生成唯一的序列号、验证码等等,这节内容就通过实例演示几种常用的生成随机数的方法.

方法一:Random

这里就通过一个抽奖的小程序来演示这个功能:比如某个科室有十个人,然后领导通过点击鼠标enter暂停来随机抽取中奖的人:.

  static void Main(string[] args)        {            List<string> nameList = new List<string>() { "梦琪","忆柳","之桃","慕青","问兰","尔岚","元香","初夏","沛菡","曼文"};            bool flag = true;
            while (flag)            {                Console.Clear();                Random rd = new Random();  //无参即为使用系统时钟为种子                Console.WriteLine(nameList[rd.Next(0, 9)]);                Thread.Sleep(100);
                Task.Run(()=>                {                    if (Console.ReadKey().Key == ConsoleKey.Enter)                    {                        flag = false;                    }                });            }            Console.ReadKey();                  }

运行演示:

C#生成随机数的两种方法

这里Next是一个虚方法,可以被重写,原型如下:

public virtual int Next(int minValue, int maxValue);

解释:返回在指定范围内的任意整数。

  //        // 摘要:        //     返回在指定范围内的任意整数。        //        // 参数:        //   minValue:        //     返回的随机数字包含下限。        //        //   maxValue:        //     返回随机数的不含上限。maxValue必须大于或等于minValue。        //        // 返回结果:        //     32 位有符号的整数大于或等于minValue和小于maxValue; 即,返回值的范围包括minValue但不是maxValue。如果minValue等于maxValue,minValue返回。        //        // 异常:        //   T:System.ArgumentOutOfRangeException:        //     minValue 大于 maxValue。

方法二:Guid

GUID (Globally Unique Identifier) 全球唯一标识符,代表一个巨大的识别号,它很大,以至于同一键产生两次的概率非常小。对于使用100亿个随机GUID的应用程序,巧合的概率大约为五分之一(十亿分之一)。

 static void Main(string[] args)        {            Console.WriteLine(Guid.NewGuid());            Console.ReadKey();                  }

C#生成随机数的两种方法

格式如下:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx结构的16进制数字.