试图创建一个返回一些随机数的类

时间:2014-02-04 10:20:33

标签: c#

我试图创建一个会返回一些随机数的类。 现在我知道如何创建一堆随机数并使用以下方法将它们放在列表框中:

Random RndNmbrs = new Random();
int n = RndNmbrs.Next();
for (int a = 0; a < 10; a++)
{
    lstBubbleUnorderd.Items.Add(RndNmbrs.Next(0, 10));
}

但是我想把这些代码放在一个类中并从Program.cs调用它, 我尝试了几件事,但我不能让它工作,所以请告诉我一个人应该怎么做?

4 个答案:

答案 0 :(得分:1)

生成ranod数字的简单类:

生成器类:

public class RandomNumberGenerator
{
    private Random _rndNmbrs = new Random();

    // Generate's a single random value
    public int Generate(int min, int max)
    {
        return _rndNmbrs.Next(min, max);
    }

    // Generate's a list of random values
    public List<int> Generate(int count, int min, int max)
    {
        var ret = new List<int>();
        for (var i = 0; i < count; i++) 
        {
            ret.Add(_rndNmbrs.Next(min, max);
        }
        return ret;
    }
}

使用:

var gen = new RandomNumberGenerator();
lstBubbleUnorderd.Items.AddRange(gen.Generate(10));

答案 1 :(得分:0)

您只需要将类中的Random实例保存为实例变量:

public class RandomGenerator
{ 
    private Random _rnd = new Random();

    public int Next(int min, int max)
    {
        return _rnd.Next(min, max);
    }
    // more methods...
}

您可以这样使用它:

var generator = new RandomGenerator();
List<int> randomNumbers = Enumerable.Range(1, 10)
    .Select(i => generator.Next(0, 10)).ToList();

答案 2 :(得分:0)

我建议你把这个班做成静态的。然后你不需要在使用之前实例化这个类(因为这个类的实例化不会改变它在任何上下文中的行为)。

public static class RandomNumberGenerator
{
    private static Random _randomNumberGenerator = new Random();

    // Generate's your random number
    public static int Generate()
    {
        return _rndNmbrs.Next();
    }
}

然后在代码中你可以简单地调用

int RandomNumber = RandomNumberGenerator.Generate();

不创建新对象。

答案 3 :(得分:0)

最后我这样做了:

private static Random rnd = new Random();
    public static int Generate(int start, int end)
    {
        return rnd.Next(start, end);
    }

然后我用for循环调用它:

for (int a = 0; a < 10; a++)
        lstBubbleUnorderd.Items.Add(NummersMaken.Generate(1,100));