類管理:爲什麼我的清單是空的?
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