我正在创建一个WindowForm应用程序,现在我有一个小问题。我有一个注册表格,它会询问用户的用户名,手机号码和密码。注册后,信息将被写入文本文件。一旦用户登录成功,用户将显示一个登录表单,我将从用户实体类创建一个用户对象,并将其传递到我的主窗体并显示隐藏登录窗体的主窗体。经过一段时间不活动后,主窗体将被隐藏,登录窗体将显示给用户。关于引用变量和C#中的变量传递的简单问题
public class User
{
private string userName;
private string mobileNumber;
public User(string uName, string mnumber)
{
userName = uName;
mobileNumber = mnumber;
}
public string MobileNumber
{
get
{
return mobileNumber;
}
set
{
mobileNumber = value;
}
}
public string UserName
{
get
{
return userName;
}
set
{
userName = value;
}
}
}
public partial class Login : Form
{
//Other codes
//Upon successful login
User user = new user(username,mobilenumber);
//Hide the Login Form
this.Hide();
//Display the main Form
MainForm main = new MainForm(ref user, this);
main.Show();
}
public partial class MainForm : Form
{
private User user;
private Login login;
Public MainForm(ref User user, Login login)
{
this.user = user;
this.login = login;
}
}
的形式将切换常常登录 - >的MainForm - >登录。这是我的问题。 ,当我将用户对象作为参考变量传递给MainForm时,如上所示,对MainForm类中的用户对象所做的任何更改都将反映在登录类中,但MainForm中的用户对象不会具有最新值,并且它将是mainForm对象首次创建时的值。为什么这样,为什么在MainForm中所做的更改会反映在登录表单中,而不是MainForm类中呢?预先感谢您提供的任何帮助。干杯。
因为你只是通过一种方式参考?我不确定这里的问题是什么。 – 2011-05-30 15:13:55
代码更新后,出现了一个小错误。实际上,当用户成功登录时,我将从文本文件中读取手机号码并使用它创建用户对象,而在Mainform中我有标签页,其中一个标签页允许用户编辑他的用户名和手机号码更新到相同的文本文件。我将向用户显示旧的用户名和手机号码,但是我意识到,在那里完成的任何版本都将反映在登录类中,但不是MainForm类,因为MainForm类仍将显示旧值。我希望我现在更清楚 – tester 2011-05-30 15:22:22
我如何通过参考两种方式?或者执行此任务的正确方法。我不想每次用户访问标签页来编辑他/她的信息时从文件中读取。 – tester 2011-05-30 15:24:49