[C#] 簡單的 Helper 封裝 -- RandomHelper

来源:http://www.cnblogs.com/liqingwen/archive/2016/12/07/6131665.html
-Advertisement-
Play Games

...


 1 using System;
 2 
 3 namespace Wen.Helpers
 4 {
 5     /// <summary>
 6     /// 隨機數助手
 7     /// </summary>
 8     public sealed class RandomHelper
 9     {
10         /// <summary>
11         /// 字元集合(去掉 0oO 這幾個容易混淆的字元)
12         /// </summary>
13         private const string CharSet = "123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ~!@#$%^&*()_+|" ;
14 
15         private static readonly Random Random = new Random ();
16 
17         #region Next
18 
19         /// <summary>
20         /// 返回非負隨機數
21         /// </summary>
22         /// <returns> 大於等於零且小於 System.Int32.MaxValue 的 32 位帶符號整數 </returns>
23         public static int Next()
24         {
25             return Random.Next();
26         }
27 
28         /// <summary>
29         /// 返回一個指定範圍內的隨機數
30         /// </summary>
31         /// <param name="maxValue"> 要生成的隨機數的上限(隨機數不能取該上限值)。maxValue 必須大於或等於零 </param>
32         /// <returns>
33         /// 大於等於零且小於 maxValue 的 32 位帶符號整數,即:返回值的範圍通常包括零但不包括 maxValue。 不過,如果 maxValue 等於零,則返回 maxValue。
34         /// </returns>
35         public static int Next( int maxValue)
36         {
37             return Random.Next(maxValue);
38         }
39 
40         /// <summary>
41         /// 返回一個指定範圍內的隨機數
42         /// </summary>
43         /// <param name="minValue"> 返回的隨機數的下界(隨機數可取該下界值) </param>
44         /// <param name="maxValue"> 返回的隨機數的上界(隨機數不能取該上界值)。 maxValue 必須大於或等於 minValue</param>
45         /// <returns>
46         /// 一個大於等於 minValue 且小於 maxValue 的 32 位帶符號整數,即:返回的值範圍包括 minValue 但不包括 maxValue。
47         /// 如果 minValue 等於 maxValue,則返回 minValue。
48         /// </returns>
49         public static int Next( int minValue, int maxValue)
50         {
51             return Random.Next(minValue, maxValue);
52         }
53 
54         #endregion Next
55 
56         /// <summary>
57         /// 返回一個介於 0.0 和 1.0 之間的隨機數
58         /// </summary>
59         /// <returns> 大於等於 0.0 並且小於 1.0 的雙精度浮點數 </returns>
60         public static double NextDouble()
61         {
62             return Random.NextDouble();
63         }
64 
65         /// <summary>
66         /// 返回一個隨機字元串
67         /// </summary>
68         /// <param name="length"> 字元串長度 </param>
69         /// <returns></returns>
70         public static string NextString( int length)
71         {
72             var arr = new char[length];
73 
74             for (var i = 0; i < length; i++)
75             {
76                 var index = Random.Next(CharSet.Length);
77                 arr[i] = CharSet[index];
78             }
79 
80             return string .Join( "", arr);
81         }
82     }
83 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網路上的數據包進行截獲的包分析工具。 tcpdump可以將網路中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網路層、協議、主機、網路或埠的過濾,並提供and、or、no ...
  • 官方文檔以及常用參考: https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html https://www.server-w ...
  • Linux運行級別: 單人模式:提供系統維護、找回root密碼; 純文字的多人網路模式; 圖形界面模式; 系統服務:提供某些常駐性功能的運行程式。這些程式運行時常駐在記憶體。服務名稱後都有一個d字母。 獨立服務和非獨立服務? 獨立服務:服務是獨立啟動的,並常駐於記憶體,運行速度快。 非獨立服務:xint... ...
  • 本文出處:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,處理一批文件,本想寫C#來處理的,後來想想這個是PowerShell的天職,索性就網上各種搜,各種Demo,各種修改,花了半天時間,最後還是拼湊出來能達到效果了。本身對PowerShell並 ...
  • Kconfig是我們進行內核配置的關鍵文件,用於生成menuconfig的界面並生成最終確定編譯選項的 文件。關於Kconfig文件的編寫規則,在 有詳盡的敘述。這裡主要用實例進行語法分析。 config 確定了條目前面是否有選項,menuconfig界面中的條目中一共有3種主動選項,分別是 ,`` ...
  • 今天想安裝一個博客客戶端,結果安裝一直報錯“OnCatalogResult:0x80190194”,百度查到瞭解決發放再此記錄下來,以備後用。 到官網下載了一個線上安裝程式,可是一運行就提示無法安裝,顯式錯誤“OnCatalogResult:0x80190194”,如下圖所示 找到windows l ...
  • 不看廢話,直接跳到操作說明 前幾日心血來潮想把家中的舊筆記本換成Linux操作系統,算是在業餘生活中正式投入Linux的懷抱。說乾就乾,發行版選擇了Ubuntu,下載了Ubuntu16.04的ISO,下載軟碟通,製作成U盤啟動。恩,重啟電腦,U盤引導,進入安裝界面。 恩,安裝界面挺炫酷啊,還檢測到硬 ...
  • yum install pcre* yum install openssl* yum install zlib yum install zlib-devel yum install wget 查看是否已經安裝好 rpm -qa | grep "查看的內容" 2.開始安裝nginx wget http ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...