C#设置获取不工作首先单击使用表单

C#设置获取不工作首先单击使用表单,c#,forms,get,set,C#,Forms,Get,Set,我正在构建一个简单的文本编辑器程序。编辑文本后,会出现一个窗口,询问是否要保存该文件。这是使用存储在弹出窗口中的表单和布尔值实现的。 如果我第一次按下“是”、“否”或“取消”设置器不工作。但如果我按下第二个按钮,二传手的动作就完美了。为什么第一次就不行了? 弹出窗口的代码 public bool Exit{set;get;} 公共布尔存储{set;get;} 公共bool_Open{set;get;} 案例(“是”): { if(form1.Operation()=“退出”) { Exit=t

我正在构建一个简单的文本编辑器程序。编辑文本后,会出现一个窗口,询问是否要保存该文件。这是使用存储在弹出窗口中的表单和布尔值实现的。 如果我第一次按下“是”、“否”或“取消”设置器不工作。但如果我按下第二个按钮,二传手的动作就完美了。为什么第一次就不行了? 弹出窗口的代码

public bool Exit{set;get;}
公共布尔存储{set;get;}
公共bool_Open{set;get;}
案例(“是”):
{
if(form1.Operation()=“退出”)
{
Exit=true;//通知程序退出的Bool。
MessageBox.Show(Exit.ToString());//这将打印正确的值
}
Save=true;//Bool,表示是否应保存文件。
返回;
}
主文本编辑窗口的代码。用户按下退出按钮的示例

公共部分类表单1:表单
{
Form3 Form3=new Form3();//弹出类。
私有作废Form1\u FormClosing(对象发送方,FormClosingEventArgs e)
{
if(e.CloseReason==CloseReason.UserClosing)
{
如果(_编辑)
{
_操作=“退出”;
form3.ShowDialog();
MessageBox.Show(form3.Exit.ToString());//第一次输入时是否始终为false?
如果(表3.退出)
{
如果(格式3.保存)
{
Save();
}
}
其他的
{
e、 取消=真;
}
}
}
}
}
在您的问题中,您说“是、否或取消”,但在第二段代码中,似乎只为“是”的情况设置了
Exit=true
。这可能是问题所在吗

您可以尝试设置断点并调试代码,以了解发生了什么。如果删除自动属性并手动添加备份字段,还可以设置断点以查看何时调用setter。您可以这样写退出:

private bool _exit;
public bool Exit
{
    get => _exit;
    set
    {
        _exit = value;
    }
}
这将允许您设置一个断点,并准确地查看何时调用setter。 如果您需要调试方面的帮助,请提供有关您正在使用的代码编辑器的一些信息