概述
随机数字在生活中的应用非常普遍,比如年会随机抽奖、生成唯一的序列号、验证码等等,这节内容就通过实例演示几种常用的生成随机数的方法.
方法一: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();
}
运行演示:
这里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();
}
格式如下:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx结构的16进制数字.