那么我试图分配全局变量来读取复选框和单选按钮的值,但是当选择被改变时值不会更新!我在哪里做错了?下面的代码:全局变量返回意外值
private void chkInMut_Checked(object sender, RoutedEventArgs e)
{
GlobalVar.Mutate = 1;
}
private void chkShwCal_Checked(object sender, RoutedEventArgs e)
{
GlobalVar.ShowCal = 1;
}
private void chkOutSol_Checked(object sender, RoutedEventArgs e)
{
GlobalVar.OutCal = 1;
}
}
public static class GlobalVar
{
static int _MaxMin, _MutVal, _CalShow, _CalOut;
/// <summary>
/// Access routine for global variable.
/// </summary>
public static int Extrema
{
get
{
return _MaxMin;
}
set
{
_MaxMin = value;
}
}
public static int Mutate
{
get
{
return _MutVal;
}
set
{
_MutVal = value;
}
}
public static int ShowCal
{
get
{
return _CalShow;
}
set
{
_CalShow = value;
}
}
public static int OutCal
{
get
{
return _CalOut;
}
set
{
_CalOut = value;
}
}
}
,当我尝试使用这个测试的语句打印数字,返回的值是意外:
maxMin = GlobalVar.Extrema;
calShow = GlobalVar.ShowCal;
calOut = GlobalVar.OutCal;
IsMutble = GlobalVar.Mutate;
txtOutput.Text += Convert.ToString("\nMaxima Minima"+maxMin+"\n"+"Show Cal : "+calShow+"\n"+"Output Cal :"+calOut+"\n"+"Mutate : "+IsMutble+"\n---------\n");
当我检查/取消选中的复选框,值没有更新,因为它应该是。我哪里错了?
编辑:通过添加Unchecked参数解决。
只放了相关零件的代码,但不是墙的代码:) –
使用自动实现的属性会让你的'GlobalVar'类体只有三行...不是我推荐首先使用全局变量... –
严,您在选中的事件中始终将1设置为选中或未选中。结果总是1? – Steve