namespace eventdemopublic static void listen_bark()
}//1、純委託型別版「事件」,不安全
class dog
}public delebark onbark;//dog的委託型別成員--「事件」
}//2、私有委託型別的「事件」,安全可控
onbark定義為private 的,外界不可直接訪問和呼叫。
增加公共方法addonbark和removebark,讓外界為這個委託新增或移除方法
class dog
}private delbark onbark;//dog的委託型別的私有成員--「事件」
//給「事件」註冊方法
public void addbark(delebark dele)
//給「事件」登出方法
public void removebark(delebark dele)
}//3、真實的事件:public的事件相當於:乙個私有的委託成員 加上公開的add和remove兩個方法
// 將事件成員被設定為public的event修飾的成員。
// 封裝add方法和remove方法,外界可通過「+=」和「-=」為期註冊和登出事件響應方法。
// 由於是event修飾的,只允許內部呼叫,外界不能呼叫了。
class dog
}public event delbark onbark;//定義事件,用原來語言上再加event關鍵字修飾
}}
事件冒泡 了解事件委託全流程
說是初認識,其實也不算了,剛學習js時就已經聽過事件的冒泡和捕獲的大名,但真是不知所云,也是不求甚解,迷惑了很久,今天終決定好好來了解一下這個冒泡。在此之前呢,不得不提一下事件流 描述的是從頁面中接受事件的順序。當事件發生後,這個事件就要開始傳播 從裡到外或者從外向裡 為什麼要傳播呢?因為事件源本身...
學習C 簡單理解事件
如果要閱讀這篇文章,建議先讀我的文章委託,如果你已了解委託,那麼忽略這段話即可。public delegate void playhandle public playhandel playevent 第一段 第一行宣告了乙個委託型別playhandle 第二行宣告了乙個委託變數playevent 之...
深入理解事件捕獲冒泡
看到乙個的日誌,發現自己對事件冒泡捕獲並沒有完全理解透。借用一下這個例子和大家 一下 假設有指令碼片段如下 document.body.addeventlistener mousedown function e false document.body.addevnetlistener mousedo...