类管理:为什么我的清单是空的?
namespace AnimalShelter
{
class Administration
{
private List<Animal> animalList;
public Administration()
{
animalList = new List<Animal>();
}
public bool AddAnimal(Animal animal)
{
bool status = false;
foreach (Animal TempAnimal in animalList)
{
if (TempAnimal.ChipRegistrationNumber == animal.ChipRegistrationNumber)
{
status = false;
}
else
{
status = true;
animalList.Add(animal);
}
}
return status;
}
正如你所看到的,我做了一个列表,在constuctor对其进行初始化。
在AddAnimal方法中,如果数字与其他数字相同,则循环访问列表。如果数字匹配,则不能使用该特定ChipNumber添加其他动物。
现在我的表格:
private Administration administration;
public AdministrationForm()
{
administration = new Administration();
}
private void btnCreateAnimal_Click(object sender, EventArgs e)
{
Animal cat1 = new Cat(params..);
if (administration.AddAnimal(cat1))
{
MessageBox.Show("Following animal has succesfully been
added: " + Environment.NewLine + cat1.ToString());
}
else
{
MessageBox.Show("Animal with this chipnumber already exists.
Please Choose another one.");
}
}
所以在这里,我只是陈述轻松如果方法正确,创造了动物。如果它是假的,不要添加动物。
问题:如果我将动物添加到列表中,列表始终为空。就好像它不断地刷新/清除列表。我在这里做错了什么?
希望这可以理解,否则让我知道!
为什么你在AddAnimal方法中有foreach循环? – Viru
@Viru我使用它,因为我必须检查列表中的每个动物,如果芯片编号具有相同的芯片编号以填写注册。希望是有道理的 – Levialhan
当你新增了'Administration'时,'animalList'的长度为0.每次你尝试添加到这个时,你循环遍历这个列表(0次)。你永远不会去实际添加动物的部分,因为它内部的循环被击中0次 – Tom