2014-03-30 93 views
1

我想在加載事件中初始化我的數組(這是一個類的數組)的元素,但它沒有被調用,看不到我是什麼做錯了。加載事件似乎並沒有被調用

這是我的代碼:

namespace Coffee_Shop_Login 
{ 
    public partial class frmLogin : Form 
    { 
     public frmLogin() 
     { 
      InitializeComponent(); 
     } 

     //Global Variables 
     static int Maximum_Number_Of_Logins = 1; 
     LoginDetails[] Employees = new LoginDetails[Maximum_Number_Of_Logins];//creating array of objects of type LoginDetails 


     //method initialises the array objects when form loads 
     private void frmLogin_Load(object sender, EventArgs e) 
     { 
      for (int i = 0; i < Employees.Length; i++) 
      { 
       Employees[i] = new LoginDetails(); // set up single element to a new instance of the object 
      } 
     }//end of frmLogin_Load() 

     private void btnLogin_Click(object sender, EventArgs e) 
     { 
      string username = "Johnny"; 
      Employees[0].Set_Employee_Username(username); 
      MessageBox.Show("Username is: " + Employees[0].Get_Employee_Username()); 
     } 
    } 
} 

namespace Coffee_Shop_Login 
{ 
    class LoginDetails 
    { 
     //Public Mutator Functions 
     //======================== 

     public void Set_Employee_Username(string username) 
     { 
      Employee_Username = username;//sets Employee_Username with value passed in 
     }//end of Set_Employee_Username() 


     public void Set_Employee_Password(string password) 
     { 
      Employee_Password = password;//sets Employee_Password with value passed in 
     }//end of Set_Employee_Password()   


     //Public Accessor Functions 
     //========================= 

     public string Get_Employee_Username() 
     { 
      return Employee_Username;//returns the value of Employee_Username 
     }//end of Get_Employee_Username() 


     public string Get_Employee_Password() 
     { 
      return Employee_Password;//returns the value of Employee_Password 
     }//end of Get_Employee_Password() 


     //Private Member Variables 
     private string Employee_Username; 
     private string Employee_Password; 

    } 
} 

當我運行應用程序,我收到此錯誤信息,由於沒有被調用加載事件:

類型的未處理的異常「System.NullReferenceException '發生在咖啡店Login.exe

附加信息:未將對象引用設置爲對象的實例。

我需要添加什麼來使Load事件調用我的方法?

+0

你能告訴我哪行,你所得到的錯誤?除了使用C#編寫類似Java代碼的糟糕風格之外,我沒有找到任何理由說明爲什麼您的代碼無法正常工作,因爲它對我來說運行良好。錯誤可能在其他地方。有了這個說法,認真考慮首先學習C#及其基礎知識,像屬性和相關約定。 –

+0

我只能看到的是'frmLogin_Load'方法沒有在事件中註冊,它在點擊按鈕 –

+0

Alexandre時創建了一個NRE,我同意問題出在我的加載事件上,但我相信我遵循了正確的格式和正確的名稱,所以不明白爲什麼它不會運行。 – user3478049

回答

0

嘗試實例的形式構造陣列,而不是無處類,像這樣:

public frmLogin() 
    { 
     InitializeComponent(); 
     Employees = new LoginDetails[Maximum_Number_Of_Logins]; 
    } 
+0

感謝卡里姆,它現在正在工作。但是,我不明白爲什麼我的加載事件不會執行。 – user3478049

+0

語言規範禁止在類級別執行任意語句..參考此[**答案**](http://stackoverflow.com/questions/13198167/why-cant-i-set-the-property類對象 - 無法在一個方法中)以獲取更多信息 –

相關問題