首页 > 解决方案 > 如何访问在方法中创建的实例

问题描述

我的程序有问题。

我正在尝试创建一个数字图书库,您可以在其中添加一本书,选择封面并添加有关它的信息(当用户单击 form2 中的“确认”时)。一旦你点击你添加的书(现在出现在 form1 上),我想要 4 个标签来显示标题、作者、流派和出版年份。

我在 switch 语句中创建了 9 个类“Libro”(Book) 的实例(由每次用户添加书籍时增加的计数器触发),如下所示:

public void BtnConferma_Click(object sender, EventArgs e)
    {
        Form1 form = new Form1();

        switch (form.counter)
        {
            case 1:
                libro1 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 2:
                libro2 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 3:
                libro3 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 4:
                libro4 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 5:
                libro5 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 6:
                libro6 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 7:
                libro7 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 8:
                libro8 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
            case 9:
                libro9 = new Libro(TxtTitolo.Text, TxtAutore.Text, TxtAP.Text);
                break;
        }

        Close();
    }

在 form1 类中,当我选择这本书时,我希望改变标签

private void Selezionato1(object sender, EventArgs e)
    {
        LibroInfo libroinfo = new LibroInfo();

        LblTit.Text = libroinfo.libro1.Titolo;
        LblAutore.Text = libroinfo.libro1.Autore;
        LblAP.Text = libroinfo.libro1.AnnoPubb;

    }

问题是它告诉我 libro1 没有实例化(我相信它会发生,因为它是在交换机内部实例化的)

如何访问 form1.cs 中的“libro”实例?

谢谢

标签: c#methodsinstance

解决方案


LibroInfo libroinfo = new LibroInfo();

这会创建一个新的 LibroInfo 实例,它会覆盖您在 switch 语句中所做的事情。这就是为什么这条线失败了。LblTit.Text = libroinfo.libro1.Titolo;

您正在创建一个新的 LibroInfo 实例,默认情况下它的 libro1 值为空


推荐阅读