gpt4 book ai didi

c# - 如何在不知道提前指定数量的情况下创建对象数组

转载 作者:行者123 更新时间:2023-11-30 15:17:06 25 4
gpt4 key购买 nike

我正在上初级编程课。我们最近一直在研究对象,并被要求制作一个程序来获取一些用户输入,然后创建具有我们赋予它们的属性的动物对象。我们只需要制作 2 个对象,但我想自己分拆并创建一个程序来询问:

对于一些输入,然后它将该信息放入一个未声明的对象数组中,该数组称为 Animal 类的动物。然后它会询问您是否想要制作另一种动物,如果是,它会重复输入并将其放入数组中的下一个元素。

我在让它运行时遇到了问题,我很确定我没有正确初始化数组,我查看了整个堆栈溢出但我找不到任何可以让我创建对象数组的东西一个未指定的大小。我想创建一个新对象,并将其构造函数值放入未指定大小的数组的元素中。

这是我目前遇到的 2 个错误:

Error CS0650 Bad array declarator: To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type

Error CS0270 Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)

这是我的主要代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayOfObjectsAnimalMaker
{
class Program
{
static void Main(string[] args)
{
string another = "y";
int count = 0;
string species;
string age;

while (another == "y")
{
Console.WriteLine("Type in the animal's species: ");
species = Console.ReadLine();

Console.WriteLine("Type in the animal's age: ");
age = Console.ReadLine();

Animal animal[count] = new Animal(species, age);

Console.WriteLine("Type y to create another animal or n to end: ");
another = Console.ReadLine();

count++;
}
}
}
}

这是我的 Animal 类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayOfObjectsAnimalMaker
{
class Animal
{
private string species;
private string age;

public Animal(string s, string a)
{
this.species = s;
this.age = a;
}

public void DisplayInfo()
{
Console.WriteLine("This is a " + this.species + " that is " + this.age + " years old.");
}
}
}

我期待学习如何创建大小不确定的对象数组。

最佳答案

您可以使用 List<T> .

List<T>工具 IList<T> 通过使用其大小根据需要动态增加的数组。

// create a list to hold animals in 
var allAnimals = new List<Animal>();

while (another == "y")
{
Console.WriteLine("Type in the animal's species: ");
species = Console.ReadLine();

Console.WriteLine("Type in the animal's age: ");
age = Console.ReadLine();

// create the animal..
var newAnimal = new Animal(species, age);
// ..and add it in the list.
allAnimals.Add(newAnimal);

Console.WriteLine("Type y to create another animal or n to end: ");
another = Console.ReadLine();
}

关于c# - 如何在不知道提前指定数量的情况下创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com