【C#補全計劃】事件

一、事件的概念

1. 事件是基于委托的存在,是委托的安全包裹,讓委托的使用更具有安全性

2. 事件是一種特殊的變量類型

二、事件的使用

1. 語法:event 委托類型 事件名;

2. 使用:

? ? ? ? (1)事件是作為成員變量存在與類中

? ? ? ? (2)委托怎么用,事件就怎么用

3. 事件與委托的區別:事件不能在類外部賦值和調用

4. 只能作為成員變量存在與類和接口以及結構體中

5. 代碼:

using System;namespace Event
{class Program{static void Main(string[] args){Test test = new Test();// 委托可以在外部賦值test.action = fun;test.action += fun;test.action -= fun;// 事件不能在外部賦值// test.myEvent = fun(); 編譯報錯:事件不能在外部賦值test.myEvent += fun; // 但是可以添加、移除函數test.myEvent -= fun;// 委托可以在外部調用test.action.Invoke();// 事件不能在外部調用// test.myEvent.Invoke(); 編譯報錯:事件不能在外部調用test.doEvent(); // 但是可以在內部封裝調用}static void fun(){Console.WriteLine("調用fun()");}}class Test{// 創建委托成員變量,用于存儲函數public Action action;// 創建事件成員變量,用于存儲函數public event Action myEvent;public void doEvent(){Console.WriteLine("調用doEvent()");if(myEvent != null)myEvent.Invoke();}}
}

運行結果如下:

三、事件的作用

1. 防止外部隨意置空委托

2. 防止外部隨意調用委托

3. 事件相當于對委托進行了一次封裝,使其更加安全

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93230.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93230.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93230.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java內存緩存

我們在項目中會經常使Redis和Memcache,但是簡單項目就沒必要使用專門的緩存框架來增加系統的復雜性。用Java代碼邏輯就能實現內存級別的緩存。1.定時任務線程池使用ScheduledExecutorService結合ConcurrentHashMap,如果你使用的是ConcurrentHashMap,你可…

智能工廠生產監控大屏-vue純前端靜態頁面練習

學習前端還是非常有意思的,因為前端真的是可見即所得,可以做出來非常好看漂亮的頁面,最近我就在使用前端技術 做一些大屏報表,在制作這些大屏報表過程中,又熟練的練習了自己的學到的相關的前端技術,接下來把…

HTTP 協議詳細介紹

目錄一、HTTP 的基本概念與歷史演進1. 核心定義2. 歷史版本演進二、HTTP 的核心工作原理1. 請求-響應模型2. 基于 TCP 的傳輸(HTTP/1.1、HTTP/2)三、HTTP 請求結構1. 請求行2. 請求頭3. 請求體四、HTTP 響應結構1. 狀態行2. 響應頭3. 響應體五、HTTP 與 …

正則化:從過擬合到泛化的「平衡藝術」

在機器學習領域,有一個幾乎所有從業者都會遇到的「噩夢」:模型在訓練集上表現完美(損失趨近于0),但在測試集上卻大幅「翻車」。這種現象被稱為「過擬合」(Overfitting),它像一把雙刃…

[Python 基礎課程]根據描述定義一個 Person 類

人都屬于人類這個物種,每一個人都會有姓名和年齡,人都可以介紹自己,隨著時間的流逝,人都會增加年齡,每一個人都能獲取到自己的物種信息。 我們的抽象過程: 所有的 Person 對象都應該有一個共同的屬性來表示…

熱門手機機型重啟速度對比

以下是2023-2024年市場主流熱門手機機型的重啟速度對比分析,基于公開測試數據和用戶反饋整理(數據會因系統版本和測試環境不同存在波動):旗艦機型重啟速度排名(冷啟動)排名機型平均重啟時間關鍵配置優化技術…

第454題.四數相加II

第454題.四數相加II 力扣題目鏈接(opens new window) 給定四個包含整數的數組列表 A , B , C , D ,計算有多少個元組 (i, j, k, l) ,使得 A[i] B[j] C[k] D[l] 0。 為了使問題簡單化,所有的 A, B, C, D 具有相同的長度 N,且 0 ≤ N ≤…

力扣top100(day04-05)--堆

本文為力扣TOP100刷題筆記 筆者根據數據結構理論加上最近刷題整理了一套 數據結構理論加常用方法以下為該文章: 力扣外傳之數據結構(一篇文章搞定數據結構) 215. 數組中的第K個最大元素 class Solution {// 快速選擇遞歸函數int quickselect(…

CCS雙軸相位偏移光源 讓淺凹痕無處遁形

在工業檢測中,淺凹痕表面檢測對精度和可靠性要求極高,工業光源在此過程中扮演著關鍵角色,工業光源通過精準的光學設計(角度、波長、強度)將肉眼不可見的淺凹痕轉化為可量化的光學信號,是實現高精度自動化檢…

專題三_二分_x 的平方根

一:題目解釋:返回x的算數平方根,如果是小數,則舍去小數部分,返回整數即可!二:算法①:暴力從1開始求平方,最后要么直接找到一個值的平方為x,要么發現x在兩個相…

Python 操作 Redis 的客戶端庫 redis-py

Python 操作 Redis 的客戶端庫 redis-py1. Installation2. Connect and test3. Connection Pools4. Redis Commands4.1. set(name, value, exNone, pxNone, nxFalse, xxFalse, keepttlFalse, getFalse, exatNone, pxatNone)4.1.1. setnx(name, value)4.1.2. setex(name, time, …

社區物業HCommunity本地部署手冊

HC小區管理系統安裝手動版 更多文章參考: http://www.homecommunity.cn/pages/hc/hcH5_cn.html 1.0 說明 很多開發不太喜歡用梓豪安裝,希望通過手工自己安裝,這個就需要開發人員 有一定的安裝軟件能力,比如能夠自行安裝mysql能…

單例模式-使用局部變量懶漢不用加鎖

在 C11 及之后,“局部靜態變量懶漢”(Meyers’ Singleton)不需要自己加鎖,標準已經幫你做好了線程安全。 Singleton& getInstance() {static Singleton inst; // ← 這一句并發時只會初始化一次return inst; }首次調用時&am…

51單片機-GPIO介紹

本章概述思維導圖:51單片機引腳介紹STC89系列51單片機引腳介紹STC89系列51單片機的引腳是單片機與外部電路連接的接口,用于實現電源供電、時鐘信號輸入、控制信號輸出以及數據輸入輸出等功能。PDIP封裝引腳圖:1. 電源引腳:VCC&…

CERT/CC警告:新型HTTP/2漏洞“MadeYouReset“恐致全球服務器遭DDoS攻擊癱瘓

2025年8月15日CERT/CC(計算機應急響應協調中心)近日發布漏洞公告,警告多個HTTP/2實現中新發現的缺陷可能被威脅行為者用于發起高效拒絕服務(DoS)或分布式拒絕服務(DDoS)攻擊。該漏洞被非正式命名…

[Chat-LangChain] 會話圖(LangGraph) | 大語言模型(LLM)

第二章:會話圖(LangGraph) 在第一章中,我們學習了前端用戶界面——這是聊天機器人的"面孔",我們在這里輸入問題并查看答案。 我們看到了消息如何從聊天窗口傳遞到聊天機器人的"大腦"。現在&…

Flask錯誤處理與會話技術詳解

flask入門day03 錯誤處理 1.abort函數:放棄請求并返回錯誤代碼 詳細狀態碼 from flask import Flask,abort,render_template ? app Flask(__name__) ? app.route(/) def index():return 我是首頁 ? app.route(/error) def error():abort(404)return 沒有找到…

java程序打包成exe,再打成安裝包,沒有jdk環境下可運行

一、前提條件準備:1、要被打包的程序文件:rest_assistant-1.0-SNAPSHOT.jarapplication.yml2、圖標文件tubiao123.ico3、jre4、打包成exe的軟件 config.exe4j5、打成安裝包的軟件 Inno Setup Compiler二、config.exe4j 的 exe打包配置步驟 按照以下圖進行…

區塊鏈技術原理(11)-以太坊交易

文章目錄什么是交易?交易類型交易生命周期關鍵概念:Gas 與交易費用交易狀態與失敗原因總結什么是交易? “交易(Transaction)” 是從一個賬戶向另一個賬戶發送的經過數字簽名的指令 。例如,如果 Bob 發送 A…

小兔鮮兒-小程序uni-app(二)

小兔鮮兒-小程序uni-app7.小兔鮮兒 - 用戶模塊會員中心頁(我的)靜態結構參考代碼會員設置頁分包預下載靜態結構退出登錄會員信息頁靜態結構獲取會員信息渲染會員信息更新會員頭像更新表單信息8.小兔鮮兒 - 地址模塊準備工作靜態結構地址管理頁地址表單頁動態設置標題新建地址頁…