vs2019窗体“未将对象引用设置到对象的实例”异常问题

请问vs2019在窗体中编写,启动窗体之后,最后提示“未将对象引用设置到对象的实例”,这是什么异常?
过程是:创建3个窗体,添加按钮控件,通过Form1打开Form2,通过Form2打开Form3,最后通过Form3关闭主窗体Form1,达到关闭所有窗体的效果,前面两步都正常,通过Form3关闭主窗体时报异常。
编程过程是:在Form1中创建Form2的对象
Form2 f2=new Form2();
f2.Show();//打开Form2(在Form2中如Form1的操作)
然后添加一个静态类A,写一个公有的静态字段:
public static Form1 _f1;
接着在Form1中添加一个方法,当程序加载时把当前Form1的对象赋值给公有的静态字段:
private void Formload(object sender,EventArgs e)
{
A._f1=this;
}
再在Form3里通过静态类A调用公开的静态字段,调用.Close()方法关闭主窗体Form1,达到关闭所有窗体的效果:
A._f1.Close();
到最后这一步就报异常:“未将对象引用设置到对象的实例”
不知道是啥情况?

img

看你自己,断点这两个地方,自己找问题,应该很快就找到

img

按你的描述测试了,没报错。


namespace Test2
{
    class Class1
    {
        public static Form1 _f1;
    }
}

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Class1._f1 = this;
        }
    }

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
            f3.Show();
        }
    }

    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Class1._f1.Close();
        }
    }