-
事件是物件傳送的訊息,用於指示操作的發生。 操作可能是由使用者互動(如滑鼠單擊)引起的,也可能是由某些其他程式邏輯觸發的。 引發事件的物件稱為事件傳送方。
捕獲和響應事件的物件稱為事件接收器。
在事件通訊中,事件傳送方類不知道哪個物件或方法將接收(處理)它引發的事件。 需要的是源和接收器之間的介質(或類似指標的機制).......NET Framework 定義乙個特殊型別(委託),它提供函式指標的功能。
委託是儲存對方法的引用的類。 與其他類不同,委託類具有簽名,並且它只能引用與其簽名匹配的方法。 這樣,委託就等效於型別安全函式指標或**。
雖然委託還有許多其他用途,但這裡只討論委託的事件處理功能。 委託宣告足以定義委託類。 宣告提供委託簽名,公共語言執行庫提供實現。
下面的示例演示事件委託宣告。
換言之,授權是事件的媒介,因此授權不能取代事件。
-
我的理解是,事件就像乙個委託變數的包裝器(有兩個函式,add 和 remove),它要求委託型別只能為 void。 授權的範圍要大得多,申報時沒有那麼多限制。
-
同意上樓,可以專門去MSDN,佣金和活動是一拳的組合,少不了。
-
呵呵,活動是佣金制的,你有個問題要問。
-
事件是類在發生它感興趣的某些事情時提供通知的一種方式。 對於事件,物件 A 可以通知其他物件 B 有關該事件或已更改的資訊。 引發事件的物件稱為事件傳送方源。
捕獲和響應事件的物件稱為事件接收器。
在事件通訊中,傳送方不知道哪個物件或方法將接收和處理它引發的事件。 因此,在傳送方和接收方之間需要有一種媒介[或類似指標的機制].NET Framework 定義乙個特殊型別(委託),它提供函式指標的功能。
事件使用委託為觸發時將呼叫的方法提供型別安全包裝。
這段話是我的寶藏,它更抽象。
為什麼不能用委託代替事件? 就我個人而言,我認為在事件通訊模型中,這是規範性的:事件 + = 委託(方法)。
如果你想直接使用訂單+方法,接收者怎麼知道你做了什麼,你是雙擊按鈕,點選表單,還是做了其他事情。 首先,沒有方法可以知道,那麼接收方呼叫了哪個委託(方法)呢?
如果你仔細看看開頭的段落,應該會有很大幫助。
-
委託是事件的基礎,事件在方法內部,委託在外部定義,在內部使用,所以委託是事件的基礎。 乙個委託可以定義多個事件。
-
事件是狹義委託,即事件是事件驅動模型的專用委託。
通俗地說,可以直接呼叫客戶中的委託來觸發委託指向的函式,但事件不能,事件的觸發只能由服務**本身觸發。
也就是說,在你的**中,你既可以安排誰是它的呼叫函式,還可以直接呼叫它,並且事件不能直接呼叫,而只能通過某些操作觸發。
您可以理解乙個事件是乙個或多個委託,這應該是錯誤的,因為乙個事件可以有多個事件處理程式,乙個委託也可以是多播委託。
-
活動是一種特殊的委託。 委託是乙個類似於函式指標的安全工具,但它比指標安全得多,因為它可以將乙個方法作為引數傳遞給另乙個方法,該方法可以理解為對函式的引用。 事件是訊息機制,它是乙個委託,委託沒有方法體。
-
最簡單的解釋是,事件由系統管理,以便您知道何時執行函式。 另一方面,委託在執行函式時由人類操作。 乙個是自動的,乙個是人造的。
-
可以直接呼叫 ** 中的委託來觸發委託指向的函式,但事件不能,事件的觸發只能由服務本身觸發。
活動和代表團的作用是什麼?
事件表示可以注意到某個元件的訊號,例如您的大腸發出要大便的訊號,您可以接收它去上廁所。 >>>More
事件確實是呼叫的方法。
之所以使用事件,是因為在設計階段,你不知道該呼叫什麼方法,所以你保留了乙個事件,並在使用時連線到特定的方法。 >>>More
private void button2_click(object sender, eventargs e)
object sender1 = this; >>>More