Re: [問題] 兩個類別間如何相互引發事件?
※ 引述《pttmimic (煩煩煩..)》之銘言:
: public class mymain
: {
: private static frmMain mainwin = new frmMain(IDsoft);
: //private static frmMain mainwin = new frmMain();
: private static SoftID IDsoft = new SoftID(mainwin);
: static void Main()
: {
: Application.Run(mainwin);
: }
: }
: }
: 我可以通過編譯,可是執行時會產生以下錯誤訊息
: 類型'System.NullReferenceException'的未處理例外狀況發生於TestProject
: 其他資訊 :並未將物件參考設為物件的執行個體
: IDE並會停在frmMain 的建構式
: IDsoft.onReceive += new ReceiveEventHandler(this.onAddNewMessage)
: 這一行
: 程式碼看起來很亂,不知道有沒有更好的辦法,不好意思打擾大家,感恩。
frmMain建構子的參數傳送進去前還沒被new出來呀!
你可以在mainwin和IDsoft都new出來後,再把事件都註冊好
不一定要在建構子做。
或者如果IDSoft只會被frmMain用到的話,直接宣告在frmMain裡
成為它的一個member,然後
private void btnStart_Click(object sender, System.EventArgs e)
{
IDsoft.Listen();
}
而建構子可能像這樣
public frmMain()
{
IDsoft=new SoftID();
IDSoft.onReceive+=new ReceiveEventHandler(this.onAddMessage);
}
應該比較單純吧!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.147.164
討論串 (同標題文章)