任何人都可以解释下面2个案例之间的区别吗?
点击按钮时; label1显示 12 ,但标签为 0 。 通过单击按钮,我想为公共变量赋值,并在MainWindow或其他类中使用它们。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
label.Content = num1;
}
public int num1;
private void button_Click(object sender, RoutedEventArgs e)
{
num1 = 15;
label1.Content = 12;
}
}
提前谢谢你..
答案 0 :(得分:2)
int
是一种值类型。将值类型变量分配给另一个值类型变量时,将复制该值。例如:
int a = 4;
int b = a;
a = 2;
// a = 2
// b = 4
编辑:如果您的目标是能够从任何地方分配字段并让它自动更新您的标签,您可以使用属性:
private int num1;
public int Num1
{
get
{
return num1;
}
set
{
num1 = value;
Label.Content = num1;
}
}
// Elsewhere
Num1 = 15; // Assign to the property rather than the field directly
答案 1 :(得分:0)
你的问题在这里,
public MainWindow()
{
InitializeComponent();
label.Content = num1; //Assigned to 0 as int don't have null
}
public int num1;
在此,
private void button_Click(object sender, RoutedEventArgs e)
{
num1 = 15; //you set num1, not label.Content
label1.Content = 12;
}
所以,这是解决方案。
private void button_Click(object sender, RoutedEventArgs e)
{
num1 = 15; //you set num1, not label.Content
label.Content = num1;
label1.Content = 12;
}