一、簡介
在Random類用於創建隨機數。(當然是偽隨機的。)
二、Random用法
例:
Random rnd = new Random(); int month = rnd.Next(1, 13); // 創建一個數字是1~12的之間的 int dice = rnd.Next(1, 7); // 創建一個數字是1~6之間的 int card = rnd.Next(52); // 創建一個數字是0~51之間的
三、方法詳細說明
Random 類中提供的 Next、NextBytes 以及 NextDouble 方法可以生成整數類型、byte 數組類型以及雙精度浮點型的隨機數,詳細說明如下表所示。
- Next():每次產生一個不同的隨機正整數
- Next(int max Value):產生一個比max value 小的整數
- Next(int min Value,int max Value):產生一個 minValue~maxValue 的正整數,但不包含 maxValue
- NextDouble():產生一個0.0~1.0的浮點數
- NextBytes(byte[] buffer):用隨機數填充指定字節數的數組
四、Random方法的使用
【實例】分別使用 Next、NextDouble 以及 NextBytes 方法生成隨機數。
class Program
{
static void Main(string[] args)
{
//分別使用Net、NetDouble已經NextByets方法生成隨機數
Random rd = new Random();
int numberone = rd.Next(0, 10);
Console.WriteLine("產生一個10以內的數:{0}",numberone);
//浮點數
double numbertwo = rd.NextDouble();
Console.WriteLine("產生一個0到1之間浮點數:{0}",numbertwo);
//數組
byte[] b = new byte[5];
rd.NextBytes(b);
Console.WriteLine("產生的byte類型值為:");
foreach (byte i in b)
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.ReadKey();
}
}
輸出結果,如圖所示:

【實例】輸入名字隨機顯示這個人上輩子是什么樣的人
class Program
{
static void Main(string[] args)
{ //隨機數
Random rd = new Random();
while (true)
{
int number = rd.Next(1, 6);
Console.WriteLine("請輸入你的名字");
string name = Console.ReadLine();
if (name=="")
{
Console.WriteLine("名字不能為空,請重新輸入你的名字");
name = Console.ReadLine();
}
switch (number)
{
case 1:
Console.WriteLine("{0}的上輩子是皇帝", name);
break;
case 2:
Console.WriteLine("{0}的上輩子是皇后", name);
break;
case 3:
Console.WriteLine("{0}的上輩子是貴妃", name);
break;
case 4:
Console.WriteLine("{0}的上輩子是秀才", name);
break;
case 5:
Console.WriteLine("{0}的上輩子是駙馬", name);
break;
}
Console.ReadKey();
}
}
}
輸出結果,如圖所示:

