我正在創建一個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