C# 随机数生成:Random 类用法

简介: Random类用于生成伪随机数,适用于游戏、验证码、测试等场景。通过静态实例避免重复创建,确保随机性。提供整数、小数、布尔值及指定长度的随机字符串生成方法,使用简便且高效。注意需复用实例防止种子重复导致随机数相同。

Random 类用于生成伪随机数,适合游戏、验证码、测试数据等场景。

public class RandomHelper
{
    // 静态Random实例(避免重复创建导致随机数相同)
    private static readonly Random _random = new Random();
    // 生成指定范围的随机整数(包含min,不包含max)
    public static int GetRandomInt(int min, int max)
    {
        if (min >= max) throw new ArgumentException("min必须小于max");
        return _random.Next(min, max);
    }
    // 生成随机小数(0.0到1.0之间)
    public static double GetRandomDouble()
    {
        return _random.NextDouble();
    }
    // 生成随机布尔值
    public static bool GetRandomBool()
    {
        return _random.Next(2) == 0;
    }
    // 生成随机字符串(包含字母和数字)
    public static string GetRandomString(int length)
    {
        if (length <= 0) return "";
        string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        char[] result = new char[length];
        for (int i = 0; i < length; i++)
        {
            result[i] = chars[_random.Next(chars.Length)];
        }
        return new string(result);
    }
}
// 调用示例
Console.WriteLine("随机整数(1-100):" + RandomHelper.GetRandomInt(1, 101));
Console.WriteLine("随机小数(0-1):" + RandomHelper.GetRandomDouble().ToString("F4"));
Console.WriteLine("随机布尔值:" + RandomHelper.GetRandomBool());
Console.WriteLine("6位随机字符串:" + RandomHelper.GetRandomString(6));
Console.WriteLine("8位随机字符串:" + RandomHelper.GetRandomString(8));
// 输出示例:
// 随机整数(1-100):45
// 随机小数(0-1):0.6789
// 随机布尔值:True
// 6位随机字符串:xY3z7Q
注意:Random 实例需复用,避免短时间内重复创建(否则种子相同,随机数相同)。
相关文章
|
存储 JSON 安全
钉钉accessToken过期后如何重新获取?
钉钉accessToken过期后如何重新获取?
557 0
|
5月前
|
API 定位技术 调度
实现精准定位的—坐标系经纬度转换API技术说明和行业应用
在地图服务、物流调度等应用中,多源地理位置数据因采用不同坐标系(如WGS84、GCJ02、BD09)需统一转换,以避免位置偏移影响路径规划与分析精度。本文介绍坐标转换背景、技术方案及Python调用示例,强调其在智慧交通与物流系统中的重要性。
581 0
|
算法 调度
操作系统基础:处理机调度【下】
操作系统基础:处理机调度【下】
|
存储 前端开发 JavaScript
Webpack【Webpack中模式(Mode)、Webpack中使用DevServer、Webpack中devtool增强调试过程】(二)-全面详解(学习总结---从入门到深化)
Webpack【Webpack中模式(Mode)、Webpack中使用DevServer、Webpack中devtool增强调试过程】(二)-全面详解(学习总结---从入门到深化)
681 0
|
数据库
ER图总结
ER图总结
588 0
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
2374 4
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
3031 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
负载均衡 网络协议 网络架构
静态路由 及其 实验操作
静态路由 及其 实验操作
|
Ubuntu 持续交付 Docker
如何在 Ubuntu 20.04 上安装 Docker和DockerCompose
如何在 Ubuntu 20.04 上安装 Docker和DockerCompose
3273 1

热门文章

最新文章