【发布时间】:2019-10-17 07:31:41
【问题描述】:
我正在学习 c#,并决定尝试创建一个功能性的机会游戏,一部分一部分。 我之前创建了一个方法,该方法会创建一个随机(但可能效率低下)自然数数组,该数组不会出现多次。
但是,当我尝试将 OOP 拼凑在一起时,我意识到如果我创建多个这样的数组,它们将是对象,因此应该由一个类创建。
我在构造函数中创建了数组。然而,我无法从构造函数的类中或完全在另一个类中访问这个数组。
class randomArray
{
Random rng = new Random();
protected int amountOfNumbers;
protected int rangeOfNumbers;
public randomArray(int amountOfNumbers, int rangeOfNumbers)
{
this.amountOfNumbers = amountOfNumbers;
this.rangeOfNumbers = rangeOfNumbers;
int[] randomizedArray = new int[amountOfNumbers];
for (int i = 0; i < amountOfNumbers; i++)
{
randomizedArray[i] = rng.Next(1, rangeOfNumbers + 1);
// A test to ensure that each new number generate is not
already part of the array.
for (int j = 0; j < i; j++)
{
while (randomizedArray[i] == randomizedArray[j])
{
randomizedArray[i] = rng.Next(1, rangeOfNumbers + 1);
j = 0;
}
if (randomizedArray[i] != randomizedArray[j])
continue;
}
}
}
public int RangeOfNumbers { get; set; }
public int AmountOfNumbers { get; set; }
我认为我要么不了解 OOP 的基础知识,要么不了解如何使用类。
【问题讨论】:
-
了解Properties。
-
除了您的数组之外,您还实现了两个相互不相关的成员 amountOfNumbers 和 AmountOfNumbers。如果您使用 {get;set;} 语法,支持属性的字段将自动创建,您无需手动创建。
标签: c# class constructor