我想在每次添加后将变量ID增加一个,但我不确定如何。
与现在一样,添加到列表框后ID始终为0。
public class Animal
{
private string name;
private int age;
private string gender;
private int id; //<-- this is the one I want to increase.
public int Id
{
get { return id; }
set
{
if (value > 0)
id = value;
}
}
这是我处理逻辑的动物管理器类。我尝试创建一个动物对象并增加id,但它没有用。
class AnimalManager
{
private List<Animal> AnimalList;
private Animal ani;
public AnimalManager()
{
AnimalList = new List<Animal>();
ani = new Animal();
}
public void add(Animal ObjIn)
{
AnimalList.Add(ObjIn);
ani.Id++;
}
以下是我添加到列表中的方式。
private void UpdateResults()
{
Resultlst.Items.Clear(); //Erase current list
//Get one elemnet at a time from manager, and call its
//ToString method for info - send to listbox
for (int index = 0; index < animalmgr.ElementCount; index++)
{
Animal animal = animalmgr.GetElementAtPosition(index);
toString method.
Resultlst.Items.Add(animal.ToString());
}
}
答案 0 :(得分:2)
目前,您不断增加Animal
实例上的ID ...这个实例与您实际添加到集合中的其他实例无关。
使用计数器替换Animal
中的私有AnimalManager
实例。在将其添加到集合之前,增加计数器并将新值分配给Animal
实例。
private class AnimalManager
{
private List<Animal> AnimalList;
private int animalCounter;
public AnimalManager()
{
AnimalList = new List<Animal>();
}
public void add(Animal animal)
{
animal.Id = animalCounter++;
AnimalList.Add(animal);
}
}