第九章(4) 事件訪問器 學習筆記

2021-07-09 07:01:31 字數 1033 閱讀 6375

在真實的專案中,有的物件有相當多的事件,例如乙個窗體就有好多種事件。預設情況下,當宣告事件時,編譯器將記憶體分配給乙個事件字段,一儲存事件資訊。如果類中有好多事件未使用,則他們會不必要的占用記憶體。

這種情況下,.netframework提供了eventhandlerlist類來減少記憶體的占用。它可以被看作事件的集合,只有需要響應的事件才擁有方法呼叫列表,才會在eventhandlerlist物件中出現。

如果用eventhandlerlist物件來儲存事件的相應方法,必須為每乙個事件編寫特殊的訪問器:

public delegate void onedelegate(int value);

public class a

remove

}}

這樣事件就不像原先的字段,而是變成了類中的屬性,而「add」「remove」就相當於「get」「set」。

激發事件時,原先的「標準」編寫方法是:

事件(引數);

但是對於定義了事件訪問器的事件,則必須按以下格式激發事件:

(eventhandlerlist物件名[事件名] as定義事件的委託型別)(引數);

例如:

(events["one"] as onedelegate)(100);
完整示例:

using system;

using system.collections.generic;

using system.text;

using system.componentmodel;

namespace useeventlistexample

remove

}public event twodelegate event2

remove

}public void firetwoevents()

}public class b

public void f2(string str)

}class program

}}

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章 優化器

優化器的作用是在ast中找出靜態子樹並打上標記,有以下兩個好處 每次重新渲染時,不需要為靜態子樹建立新節點 在虛擬dom中打補丁的過程可以跳過 優化器的內部實現主要分為兩個步驟 在ast中找出所有靜態節點並打上標記 在ast中找出所有靜態根節點並打上標記 通過遞迴的方式從上向下標記靜態節點時,如果乙...

matlab學習筆記第九章 變換

1.拉普拉斯變換 時間函式f t 的拉普拉斯變換用下面的積分式定義 l 0 f t e stdt,我們通常把f t 的拉普拉斯變換寫f s 在matlab計算拉普拉斯變換,我們要呼叫laplace f t 它做的是符號計算。l tn n sn 1 要計算拉普拉斯逆變換,我們輸入ilaplace 2....