zoukankan      html  css  js  c++  java
  • C# random helper class

    项目中经常需要模拟些假数据,来做测试。这个随机生成数据的helper类就应用而生:

    using System;
    using System.Text;
    using System.Windows.Media;
     
    namespace WpfApplication1.Helper
    {
        public static class RandomHelper
        {
            private static Random randomSeed = new Random();
     
            /// <summary>
            /// Generates a random string with the given length
            /// </summary>
            /// <param name="size">Size of the string</param>
            /// <param name="lowerCase">If true, generate lowercase string</param>
            /// <returns>Random string</returns>
            public static string RandomString(int size, bool lowerCase)
            {
                // StringBuilder is faster than using strings (+=)
                StringBuilder RandStr = new StringBuilder(size);
     
                // Ascii start position (65 = A / 97 = a)
                int Start = (lowerCase) ? 97 : 65;
     
                // Add random chars
                for (int i = 0; i < size; i++)
                    RandStr.Append((char)(26 * randomSeed.NextDouble() + Start));
     
                return RandStr.ToString();
            }
     
            public static int RandomInt(int min, int max)
            {
                return randomSeed.Next(min, max);
            }
     
            public static double RandomDouble()
            {
                return randomSeed.NextDouble();
            }
     
            public static double RandomNumber(int min, int max, int digits)
            {
                return Math.Round(randomSeed.Next(min, max - 1) + randomSeed.NextDouble(), digits);
            }
     
            public static bool RandomBool()
            {
                return (randomSeed.NextDouble() > 0.5);
            }
     
            public static DateTime RandomDate()
            {
                return RandomDate(new DateTime(1900, 1, 1), DateTime.Now);
            }
     
            public static DateTime RandomDate(DateTime from, DateTime to)
            {
                TimeSpan range = new TimeSpan(to.Ticks - from.Ticks);
                return from + new TimeSpan((long)(range.Ticks * randomSeed.NextDouble()));
            }
     
            public static Color RandomColor()
            {
                return Color.FromRgb((byte)randomSeed.Next(255), (byte)randomSeed.Next(255), (byte)randomSeed.Next(255));
            }
     
        }
    }

    作者:旭东
    出处:http://www.cnblogs.com/HQFZ
    关于作者:专注于微软平台项目架构、管理和企业解决方案。现主要从事WinForm、ASP.NET、WPF、WCF、等方面的项目开发、架构、管理。如有问题或建议,请不吝指教!
    本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以联系我,非常感谢。
    如果您该文觉得不错或者对你有帮助,请点下推荐,让更多的朋友看到,谢谢!

  • 相关阅读:
    OCP-052考试题库汇总(35)-CUUG内部解答版
    OCP-052考试题库汇总(34)-CUUG内部解答版
    018 ThreadLocal实现线程安全
    017 无锁与CAS
    016 原子类
    015 可见性问题与volatile
    014 锁重入
    013 synchronized的优化
    012 内置锁和synchronized
    011 线程安全性问题
  • 原文地址:https://www.cnblogs.com/HQFZ/p/4120360.html
Copyright © 2011-2022 走看看