How do I generate a random int number?

前端 未结 30 3175
长发绾君心
长发绾君心 2020-11-21 11:02

How do I generate a random integer in C#?

30条回答
  •  南旧
    南旧 (楼主)
    2020-11-21 11:52

    This is the class I use. Works like RandomNumber.GenerateRandom(1, 666)

    internal static class RandomNumber
    {
        private static Random r = new Random();
        private static object l = new object();
        private static Random globalRandom = new Random();
        [ThreadStatic]
        private static Random localRandom;
        public static int GenerateNewRandom(int min, int max)
        {
            return new Random().Next(min, max);
        }
        public static int GenerateLockedRandom(int min, int max)
        {
            int result;
            lock (RandomNumber.l)
            {
                result = RandomNumber.r.Next(min, max);
            }
            return result;
        }
        public static int GenerateRandom(int min, int max)
        {
            Random random = RandomNumber.localRandom;
            if (random == null)
            {
                int seed;
                lock (RandomNumber.globalRandom)
                {
                    seed = RandomNumber.globalRandom.Next();
                }
                random = (RandomNumber.localRandom = new Random(seed));
            }
            return random.Next(min, max);
        }
    }
    

提交回复
热议问题