C 中事件與方法的異同

2021-04-12 23:51:52 字數 645 閱讀 9988

首先,給出解析用的**

void m(){}

event eventhandler e;

virtual void one(eventargs e)

}對於某乙個流程s:

if (k>0)

else

這與如下的改動s有什麼不同

if(k>0)

else

//為區別起見稱些改動後的流程為s'

s'是否可能存在不能夠被s代替的可能性..如果事件是有某種特別的意義的.那麼應該不是那麼容易被代替的對於s來說,只要確定乙個條件,k>0不為真那麼m方法將被執行,而同樣情況下在s'中則是e事件被觸發,這好象區別不大設擁有事件e和m的物件是obj_1,而擁有obj_1是另乙個物件設為obj_2,那麼obj_1.m可以確定的被obj_2呼叫(假設m為公有的,e也是),這時如果s屬於obj_2那麼這將是一種很正常和標準的設計,當然s也可以屬於obj_1本身其作用與m一致也就是說s屬於obj_1 時仍然是obj_1中的乙個方法,但是通常s'不屬於obj_2而只能屬於obj_1這就說明,對於事件來說,只要是滿足,那些可確定的s'但無法確定的方法體時,即為事件,這對於物件導向的分析來說顯得更貼切於,實際的問題域了,讓設計的困難程度降低了而且增加了靈活性.大概這種是事件與方法的不同之處吧.

6:26 2001-1-1

call與apply方法的異同

改變物件的執行上下文 什麼是執行上下文?我們在寫乙個方法的時候,總是會用到乙個關鍵字this,而this的指向就是我們這裡所說的執行上下文 執行環境 首先我們要知道,this指向的永遠是呼叫該方法的物件,如何證明this的指向就是當前物件呢?看下面這段 function func func 1 中方...

C 中事件方法的使用

事件是c 中另一高階概念,使用方法和委託相關。奧運會參加百公尺的田徑運動員聽到槍聲,比賽立即進行。其中槍聲是事件,而運動員比賽就是這個事件發生後的動作。不參加該項比賽的人對槍聲沒有反應。從程式設計師的角度分析,當裁判員槍聲響起,發生了乙個事件,裁判員通知該事件發生,參加比賽的運動員仔細聽槍聲是否發生...

c 中的委託與事件

c 委託與事件 一 委託 關鍵字 delegate 委託是c 中的一種型別,它實際上是乙個對某個方法引用的類 委託是一種引用方法型別 一旦為委託分配了方法 委託將與該方法有相同完全的行為 委託具有引數 和返回值 delegate類能擁有乙個簽名 signature 只能持有與他簽名相匹配的方法的引用...