W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
事件是在類中定義的一組結(jié)果,用于觸發(fā)其他類中的事件處理程序。 當(dāng)事件被觸發(fā)時(shí),我們可以調(diào)用任何數(shù)量的事件處理程序方法。 觸發(fā)器及其處理程序方法之間的鏈接實(shí)際上是在運(yùn)行時(shí)動態(tài)決定的。
在正常的方法調(diào)用中,調(diào)用程序確定對象或類的哪個(gè)方法需要被調(diào)用。 由于固定處理程序方法未針對每個(gè)事件注冊,因此在事件處理的情況下,處理程序方法確定需要觸發(fā)的事件。
類的事件可以通過使用RAISE EVENT語句觸發(fā)同一類的事件處理程序方法。 對于事件,可以通過使用FOR EVENT子句在相同或不同的類中定義事件處理程序方法,如以下語法中所示 -
FOR EVENT <event_name> OF <class_name>.
類似于類的方法,事件可以有參數(shù)接口,但它只有輸出參數(shù)。 輸出參數(shù)通過RAISE EVENT語句傳遞到事件處理程序方法,RAISE EVENT語句接收它們作為輸入?yún)?shù)。 事件通過使用SET HANDLER語句在程序中動態(tài)鏈接到其處理程序方法。
當(dāng)觸發(fā)事件時(shí),應(yīng)該在所有處理類中執(zhí)行適當(dāng)?shù)氖录幚沓绦蚍椒ā?/span>
REPORT ZEVENT1. CLASS CL_main DEFINITION. PUBLIC SECTION. DATA: num1 TYPE I. METHODS: PRO IMPORTING num2 TYPE I. EVENTS: CUTOFF. ENDCLASS. CLASS CL_eventhandler DEFINITION. PUBLIC SECTION. METHODS: handling_CUTOFF FOR EVENT CUTOFF OF CL_main. ENDCLASS. START-OF-SELECTION. DATA: main1 TYPE REF TO CL_main. DATA: eventhandler1 TYPE REF TO CL_eventhandler. CREATE OBJECT main1. CREATE OBJECT eventhandler1. SET HANDLER eventhandler1→handling_CUTOFF FOR main1. main1→PRO( 4 ). CLASS CL_main IMPLEMENTATION. METHOD PRO. num1 = num2. IF num2 ≥ 2. RAISE EVENT CUTOFF. ENDIF. ENDMETHOD. ENDCLASS. CLASS CL_eventhandler IMPLEMENTATION. METHOD handling_CUTOFF. WRITE: 'Handling the CutOff'. WRITE: / 'Event has been processed'. ENDMETHOD. ENDCLASS.
上面的代碼產(chǎn)生以下輸出
Handling the CutOff Event has been processed
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: