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

C# 试图创建一个返回一些随机数的类,c#,C#,我试图创建一个类,它将返回一些随机数。 现在我知道了如何创建一组随机数,并使用以下命令将它们放入列表框: Random RndNmbrs = new Random(); int n = RndNmbrs.Next(); for (int a = 0; a < 10; a++) { lstBubbleUnorderd.Items.Add(RndNmbrs.Next(0, 10)); } Random RndNmbrs=new Random(); int n=RndNmbrs.Nex

我试图创建一个类,它将返回一些随机数。 现在我知道了如何创建一组随机数,并使用以下命令将它们放入列表框:

Random RndNmbrs = new Random();
int n = RndNmbrs.Next();
for (int a = 0; a < 10; a++)
{
    lstBubbleUnorderd.Items.Add(RndNmbrs.Next(0, 10));
}
Random RndNmbrs=new Random();
int n=RndNmbrs.Next();
对于(int a=0;a<10;a++)
{
添加(RndNmbrs.Next(0,10));
}
但是我想把代码放在一个类中,并从
Program.cs
调用它,
我已经尝试了几种方法,但无法实现,请告诉我应该如何实现这一点?

生成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;
    }
}

您只需将类中的
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();
var生成器=新的随机生成器();
列表随机数=可枚举范围(1,10)
.Select(i=>generator.Next(0,10)).ToList();

我建议您将该类设置为静态类。然后在使用之前不需要实例化这个类(因为实例化这个类不会改变它在任何上下文中的行为)

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

int RandomNumber = RandomNumberGenerator.Generate();

没有创建新对象。

最后我是这样做的:

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));
for(int a=0;a<10;a++)
lstbubleunderd.Items.Add(numersmaken.Generate(1100));

您能展示一下您尝试过并遇到的困难吗?我建议您做一些OOP教程。可能会有帮助:好吧,我现在这么做了。我该怎么称呼它?@D3l4n0我已经更新了我的答案。可能需要,也可能不需要。您可以重用相同的
RandomNumberGenerator
实例,而不是静态类,效果相同。和(根据线程安全)+1感谢您指出线程安全。我不知道。
private static Random rnd = new Random();
    public static int Generate(int start, int end)
    {
        return rnd.Next(start, end);
    }
for (int a = 0; a < 10; a++)
        lstBubbleUnorderd.Items.Add(NummersMaken.Generate(1,100));