c# - 如何访问在方法中创建的实例
问题描述
我的程序有问题。
我正在尝试创建一个数字图书库,您可以在其中添加一本书,选择封面并添加有关它的信息(当用户单击 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”实例?
谢谢
解决方案
LibroInfo libroinfo = new LibroInfo();
这会创建一个新的 LibroInfo 实例,它会覆盖您在 switch 语句中所做的事情。这就是为什么这条线失败了。LblTit.Text = libroinfo.libro1.Titolo;
您正在创建一个新的 LibroInfo 实例,默认情况下它的 libro1 值为空
推荐阅读
- python - 如何使用 python 将文件上传到 Amazon S3 签名的 url?
- bash - 为什么我在 Code Runner 编译 C 时遇到问题?
- c - Hello World shellcode 编译
- javascript - 更改部分颜色
- javascript - fetch和post之间有什么关系?
- json - 似乎无法使用 ASP.NET MVC 和实体框架返回我的模型
- function - 函数的使用/返回
- react-native - 错误:找不到导航对象。您的组件在 NavigationContainer 中吗?
- c++ - 源是通过 add_library 命令 PUBLIC 还是 PRIVATE 添加到库中的?
- arrays - 我想创建一个循环,它只通过矩阵中每一行中的第一个列