[英]Boolean sets to false by itself
我的问题是bool rememberMe
自动将其值设置为 false,我不知道为什么
public partial class Example1 : Form
{
public Example1()
{
InitializeComponent();
}
public bool rememberMe;
public void TryLogin()
{
if (checkboxRememberMe.Checked)
rememberMe = true;
else
rememberMe = false;
var e2 = new Example2();
}
public bool CheckRememberMe()
{
if (rememberMe == true)
return true;
else
return false;
}
}
public partial class Example2 : Form
{
public Example2()
{
InitializeComponent();
var lf = new Example1();
if (lf.CheckRememberMe() == true)
// ...
else
// ...
}
}
如您所见,这是 Windows 窗体应用程序。 第一个是TryLogin()
方法,它将rememberMe
设置为true
。 然后, public Example2()
运行。 问题是在这部分脚本中
var lf = new LoginForm();
if (lf.CheckRememberMe() == true)
// ...
else
// ...
显示lf.CheckRememberMe()
等于false
。 有什么问题,我该如何解决?
var lf = new LoginForm();
这将创建一个新的LoginForm - 所以它不会有其他登录表单所做的更改。
您将不得不传递变量,或使其成为静态。
尝试将构造函数更改为:
public Example2(bool rememberMe){
this.rememberMe = rememberMe;
InitializeComponent();
}
然后通过它:
var e2 = new Example2(rememberMe);
或者您可以(但可能不应该)将其更改为静态变量:
public static bool rememberMe;
并按类名引用:
if (Example1.rememberMe == true)
如果你只是想让它快速工作 - 但是然后阅读面向对象的基础知识
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.