C#中System.Random类的Next()方法用于获取随机整数。可以通过向其传递不同的参数来重载此方法,如下所示:
- 下一个()
- 下一个(Int32)
- 下一个(Int32,Int32)
Next()方法
此方法用于返回非负随机整数。
句法:
public virtual int Next ();
返回值:此方法返回大于或等于0且小于MaxValue的32位有符号整数。
例子:
// C# program to illustrate the
// Random.Next() Method
using System;
class GFG {
// Driver code
public static void Main()
{
// Instantiate random number generator
Random rand = new Random();
// Print 10 random numbers
Console.WriteLine("Printing 10 random numbers");
for (int i = 1; i <= 10; i++)
Console.WriteLine("{0} -> {1}", i, rand.Next());
}
}
输出:
Printing 10 random numbers
1 -> 1386420123
2 -> 2133003862
3 -> 981665925
4 -> 495382685
5 -> 1127976381
6 -> 824414652
7 -> 213006792
8 -> 1948108820
9 -> 214839986
10 -> 261560448
Next(Int32)方法
此方法用于获取小于指定最大值的非负随机整数。
句法:
public virtual int Next (int maxValue);
此处, maxValue是要生成的随机数的上限。它必须大于或等于0。
返回值:该函数返回一个大于或等于0且小于maxValue的32位有符号整数。但是,如果maxValue等于0,则返回maxValue 。
异常:如果maxValue小于0,则此方法将提供ArgumentOutOfRangeException 。
例子:
// C# program to illustrate the
// Random.Next(Int32) Method
using System;
class GFG {
// Driver code
public static void Main()
{
// Instantiate random number generator
Random rand = new Random();
// Print 10 random numbers less than 100
Console.WriteLine("Printing 10 random numbers less than 100");
for (int i = 1; i <= 10; i++)
Console.WriteLine("{0} -> {1}", i, rand.Next(100));
}
}
输出:
Printing 10 random numbers less than 100
1 -> 19
2 -> 94
3 -> 14
4 -> 54
5 -> 94
6 -> 73
7 -> 39
8 -> 42
9 -> 18
10 -> 77
Next(Int32,Int32)方法
此方法用于获取指定范围内的随机整数。
句法:
public virtual int Next (int minValue, int maxValue);
参数:
- maxValue:它是生成的随机数的排他上限。它必须大于或等于minValue。
- minValue:它是返回的随机数的包含性下限。
返回值:该函数返回一个大于或等于minValue且小于maxValue的32位有符号整数;也就是说,返回值的范围包括minValue而不是maxValue 。如果minValue等于maxValue ,则返回minValue 。
异常:如果minValue大于maxValue,则此方法将提供ArgumentOutOfRangeException 。
例子:
// C# program to illustrate the
// Next(Int32, Int32) Method
using System;
class GFG {
// Driver code
public static void Main()
{
// Instantiate random number generator
Random rand = new Random();
// Print 10 random numbers between 50 and 100
Console.WriteLine("Printing 10 random numbers"+
" between 50 and 100");
for (int i = 1; i <= 10; i++)
Console.WriteLine("{0} -> {1}", i, rand.Next(50, 100));
}
}
输出:
Printing 10 random numbers between 50 and 100
1 -> 91
2 -> 85
3 -> 93
4 -> 74
5 -> 88
6 -> 77
7 -> 92
8 -> 76
9 -> 77
10 -> 52
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.random.next?view=netframework-4.7.2