随机数的生成方法

整理随机数、随机字符串的生成方法:

 1         #region 生成随机数字
 2         /// <summary>
 3         /// 生成随机数字
 4         /// </summary>
 5         /// <param name="length">生成长度</param>
 6         /// <returns></returns>
 7         public static string Number(int length)
 8         {
 9             return Number(length, false);
10         }
11         #endregion
12 
13         #region 生成随机数字(有线程睡眠时间)
14         /// <summary>
15         /// 生成随机数字(有线程睡眠时间)
16         /// </summary>
17         /// <param name="length">生成随机数的长度</param>
18         /// <param name="sleep">是否要在生成前将当前线程阻止以避免重复</param>
19         /// <param name="millisecondsTimeout">线程睡眠时间</param>
20         /// <returns></returns>
21         public static string Number(int length, bool sleep, int millisecondsTimeout = 3)
22         {
23             if (sleep)
24             {
25                 System.Threading.Thread.Sleep(millisecondsTimeout);
26             }
27             string result = "";
28             System.Random random = new Random();
29             for (int i = 0; i < length; i++)
30             {
31                 result += random.Next(10).ToString();
32             }
33             return result;
34         }
35         #endregion
36 
37         #region 生成随机字母字符串(数字字母混和)
38         /// <summary>
39         /// 生成随机字母字符串(数字字母混和)
40         /// </summary>
41         /// <param name="length">待生成的随机数位数</param>
42         /// <returns></returns>
43         public static string GetNumberCode(int length)
44         {
45             string str = string.Empty;
46             int rep = 0;
47             long num2 = DateTime.Now.Ticks + rep;
48             rep++;
49             Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep)));
50             for (int i = 0; i < length; i++)
51             {
52                 char ch;
53                 int num = random.Next();
54                 if ((num % 2) == 0)
55                 {
56                     ch = (char)(0x30 + ((ushort)(num % 10)));
57                 }
58                 else
59                 {
60                     ch = (char)(0x41 + ((ushort)(num % 0x1a)));
61                 }
62                 str = str + ch.ToString();
63             }
64             return str;
65         }
66         #endregion

 

posted @ 2016-07-25 16:21  赛跑的蜗牛  阅读(337)  评论(0编辑  收藏  举报