在我的程序中,我有一個控制器,根據用戶的請求,創建新的窗體和將由這些窗體使用的新對象。簡單地說,這樣的:屬性在設置後不久就變爲空了
ClientForm clientForm = new ClientForm();
Client client = new Client();
clientForm.SetClient(client);
clientForm.Show();
SetClient
做了很明顯的:
Client _client;
public ClientForm()
{
InitializeComponent();
}
public void SetClient(Client client)
{
this._client = client;
}
如果我嘗試使用_client
而我在SetClient
一切是工作正常,但如果我嘗試使用它從一個事件處理程序,我得到一個NullReferenceException
,事實上,如果檢查顯示_client
是null
,確實很簡單。
這是怎麼發生的?它是否超出範圍或什麼?我怎樣才能防止呢?
當我在測試運行中發現它時(創建表單,發送一個新的客戶端,按下按鈕時調用ToString()),沒有太多的代碼剩下。如果我嘗試在SetClient中調用this.client.ToString(),則沒有問題。 – user3002428
你在哪裏運行第一段代碼?它在main()函數中嗎?或以某種形式......您的事件處理程序在哪裏被處理以及處理程序的代碼是什麼..請提供更多詳細信息 –
我想用額外的代碼進行編輯,當我重新讀取所有我想添加的代碼時,我注意到了新的ClientForm()應該沒有新的。現在我感到很蠢。 – user3002428