C# 将动物/狗/猫添加到动物列表会导致NullReferenceException吗?

C# 将动物/狗/猫添加到动物列表会导致NullReferenceException吗?,c#,nullreferenceexception,C#,Nullreferenceexception,在下面的代码中,我创建了一只猫或一只狗,我有两个子类动物(狗的最后一次散步日期作为额外值,猫的坏习惯作为额外值) public partial class AdministrationForm : Form { private Animal animal; private Administration admin; public AdministrationForm() { InitializeComponent(); anima

在下面的代码中,我创建了一只猫或一只狗,我有两个子类动物(狗的最后一次散步日期作为额外值,猫的坏习惯作为额外值)

public partial class AdministrationForm : Form
{
    private Animal animal;
    private Administration admin;

    public AdministrationForm()
    {
        InitializeComponent();
        animalTypeComboBox.SelectedIndex = 0;
        animal = null;
    }

    private void createAnimalButton_Click(object sender, EventArgs e)
    {
        if(animalTypeComboBox.SelectedItem == "Dog")
        {
            SimpleDate dateBirth = new SimpleDate(ttbdateBirth.Value.Day,
            ttbdateBirth.Value.Month,
            ttbdateBirth.Value.Year);
            SimpleDate dateLast1 = new SimpleDate(dateLast.Value.Day, dateLast.Value.Month, dateLast.Value.Year);
            Animal animal = new Dog(Convert.ToString(tbId.Text), dateBirth, tbName.Text, dateLast1);
            admin.Add(animal);
        }
        if (animalTypeComboBox.SelectedItem == "Cat")
        {
            SimpleDate dateBirth = new SimpleDate(ttbdateBirth.Value.Day, ttbdateBirth.Value.Month, ttbdateBirth.Value.Year);
            Animal animal = new Cat(Convert.ToString(tbId.Text), dateBirth, tbName.Text, tbBad.Text);
            admin.Add(animal);
        }
    }
}
创建后,我将其发送给管理类,该类负责将此狗或猫添加到动物列表中,但如标题中所述,我收到了NullReference错误。 应该添加猫或狗的类如下所示:

class Administration
{
    private List<Animal> animals;
    public List<Animal> Animals { get { return new List<Animal>(animals); } }

    public Administration ()
    {
        animals = new List<Animal>();
    }

    public bool Add(Animal animal)
    { 
        foreach (Animal dog in animals)
    {
            if(animal.ChipRegistrationNumber == dog.ChipRegistrationNumber)
            {
                MessageBox.Show("dog already added");
                break;
            }
    }
        foreach (Animal cat in animals)
        {
            if(animal.ChipRegistrationNumber == cat.ChipRegistrationNumber)
            {
                MessageBox.Show("dog already added");
                break;
            }
        }
        return true;
    }
}
班级管理
{
私人动物名录;
公共列表动物{获取{返回新列表(动物);}
公共行政()
{
动物=新列表();
}
公共厕所(动物)
{ 
foreach(动物中的动物狗)
{
if(animal.ChipRegistrationNumber==dog.ChipRegistrationNumber)
{
MessageBox.Show(“已添加狗”);
打破
}
}
foreach(动物中的猫)
{
if(animal.ChipRegistrationNumber==类别ChipRegistrationNumber)
{
MessageBox.Show(“已添加狗”);
打破
}
}
返回true;
}
}

现在,我的问题是我做错了什么,我如何解决这个问题,以便我能够将猫或狗添加到列表中。

请告诉我们您的错误消息,例如它正在抱怨哪一行。另外,您可以尝试初始化管理员

public AdministrationForm()
{
    InitializeComponent();
    animalTypeComboBox.SelectedIndex = 0;
    animal = null;
    admin= new Administration();
}

您的变量
admin
似乎从未被实例化过。是吗?是的。。最可能的
admin
null
。谢谢,当我初始化程序时,我确实忘记了初始化admin,不再给我错误信息