c#生成随机数的方法
时间: 2025-04-22 12:59:41 浏览: 19
在C#中生成随机数是一个常见的任务,可以用于模拟、游戏开发以及各种需要不可预测数值的应用场景。以下是几种常用的生成随机数的方法:
### 使用 `Random` 类
这是最常用的方式之一。
```csharp
using System;
class Program {
static void Main() {
Random random = new Random();
// 生成一个0到9之间的整数 (包括0, 不包括10)
int num = random.Next(10);
Console.WriteLine("随机产生的数字是: " + num);
// 如果你需要指定范围,比如5到15之间(包含边界)
int rangeNum = random.Next(5, 16); // 注意第二个参数是上限加一
Console.WriteLine("范围内随机产生的数字是: " + rangeNum);
// 获取一个小于1的小数点后的浮点数 [0.0, 1.0)
double fraction = random.NextDouble();
Console.WriteLine("随机小数是:" + fraction);
}
}
```
### 线程安全地创建 `Random` 实例
由于 `Random` 对象不是线程安全的,在多线程环境中应该采取措施避免竞争条件。一种简单做法是在静态构造函数里初始化它,并加上锁机制;或者使用.NET Core/.NET 5+提供的更简便方法——通过调用 `System.Random.Shared` 属性获取单个共享实例。
```csharp
// 单一线程环境下推荐的做法 - 创建一次即可复用
private static readonly Random _randomInstance = new();
public static int GetNextInt(int minInclusive, int maxExclusive) =>
_randomInstance.Next(minInclusive, maxExclusive);
// 或者直接利用 .NET 6 的特性
int threadSafeNumber = Random.Shared.Next(100);
```
此外还有其他高级库如 `RNGCryptoServiceProvider`, 它能提供更高强度的安全性和不可预测性,适用于加密需求场合。
阅读全文
相关推荐















