Cls_Options
。在此类中,我有下一个变量:
public bool JoulVarQuestionMsgStatus;
我在(A)表单中包含一个按钮。
单击此按钮时,我为变量JoulVarQuestionMsgStatus
设置了一个值。
private void btnOK_Click(object sender, EventArgs e)
{
Cls_Options.JoulVarQuestionMsgStatus = true;
Close();
}
我显示表格(A)到表格(B),并且:
我有一个if语句来查看JoulVarQuestionMsgStatus
的值,如果它是true
,则执行某项操作,如果false
进行其他操作。
MSGs.FrmMsgQuestion FrmMsgQuestion = new MSGs.FrmMsgQuestion();
FrmMsgQuestion.lblMsg1.Text = Cls_Options.MsgSaveNew;
FrmMsgQuestion.ShowDialog();
if (Cls_Options.JoulVarQuestionMsgStatus== true)
{
int NewID = Cls_Countries.Joul_GetIDs();
this.txt1.Text = NewID.ToString();
this.txt2.Text = null;
this.txt2.Select();
}
我的问题是:当我测试代码时,我看到下一个代码中的变量保存了我分配的值:
private void btnOK_Click(object sender, EventArgs e)
{
Cls_Options.JoulVarQuestionMsgStatus = true;
Close();
}
但是当我在if语句中看到变量的值时,我看到该变量没有值,它将保留其默认值! 请帮助我
答案 0 :(得分:1)
1。您可以设置Cls_Options
类属性(如果它是公共静态类),那么在您看来,情况并非如此。
public static class Cls_Options
{
public static bool JoulVarQuestionMsgStatus = false;
}
然后您可以将其值设置为:
Cls_Options.JoulVarQuestionMsgStatus = true;
2。如果Cls_Options
不是静态的,则它必须是一个公共类,然后您可以设置该类实例的属性,例如:
Cls_Options cls_o = new Cls_Options();
cls_o.JoulVarQuestionMsgStatus = true;
答案 1 :(得分:0)
public bool JoulVarQuestionMsgStatus;
定义一个 instance 变量。对于Cls_Options类的每个实例,此变量都有一个单独的副本。
您正在尝试将此变量用作静态变量。在这种情况下,该变量将有一个副本(与类绑定而不与类实例绑定)。
要解决此问题,您可以执行以下两项操作之一:
public static bool JoulVarQuestionMsgStatus;