所以我已经在程序开始时将属性分配给了一个配方,但是在窗口结束之后,我不能在后面引用它,因为strawberryrecipe.type的值现在为null。 (编辑:所以我所要做的就是删除Recipe strawberryrecipe = new Recipe()中的“Recipe”;因为我已经把它作为Recipe在课程级别我猜)
public partial class Production_Optimization_Window : Window
{
Ingredient strawberry;
Recipe strawberryrecipe;
public Production_Optimization_Window()
{
InitializeComponent();
Recipe strawberryrecipe = new Recipe();
strawberryrecipe.Type = "asd";
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(strawberryrecipe.Type); //Here i get the error, and blueberry recipe.type = null.
}
答案 0 :(得分:3)
你有两个范围...你想要删除本地范围,最后得到这个:
public partial class Production_Optimization_Window : Window
{
Ingredient strawberry;
Recipe strawberryrecipe;
public Production_Optimization_Window()
{
InitializeComponent();
// This will use the field "strawberryrecipe"
strawberryrecipe = new Recipe();
strawberryrecipe.Type = "asd";
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(strawberryrecipe.Type);
}
}
另外,我已将blueberryrecipe
重命名为strawberryrecipe
,因为您在MessageBox之前没有对代码中的内容进行任何引用?
答案 1 :(得分:2)
您已在构造函数中将Recipe
的实例分配给strawberryrecipe
变量,但尝试使用未分配的blueberryrecipe
变量。
所以Button_Click
方法blueberryrecipe
是null
- 这就是为什么你在尝试访问其字段时会遇到异常。
事实上,你的代码甚至不应该编译,因为代码中的任何地方都没有blueberryrecipe
变量声明。