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));