freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

net程序設計(下)ppt(已修改)

2024-10-30 16:26 本頁面
 

【正文】 C.NET程序設計 (下 ) 華東師范大學 信息學院 江紅 第 9章 委托和事件 ?委托的基本概念 ?委托的聲明、實例化和調(diào)用 ?多播委托 ?事件處理機制 ?事件的聲明、訂閱和取消 ?.NET Framework事件模型 委托 ? 委托是用來處理需用函數(shù)指針來處理的情況的 ? 委托是完全面向?qū)ο蟮?,是類型安全? ? 委托是可保存對方法的引用的類。與其他的類不同,委托類具有一個簽名,并且它只能對與其簽名匹配的方法進行引用。這樣,委托就等效于一個類型安全函數(shù)指針或一個回調(diào) ? 委托聲明定義一個從 類派生的類。委托實例封裝了一個調(diào)用列表,該列表列出了一個或多個方法,每個方法稱為一個可調(diào)用實體。對于實例方法,可調(diào)用實體由該方法和一個相關(guān)聯(lián)的實例組成 、 實例化和調(diào)用 ? 聲明 : – [委托修飾符 ] delegate 返回值類型 委托名 ([形參列表 ])。 ? 實例化: –委托名 委托實例名 = new 委托名 (匹配方法 )。 ? 調(diào)用: –委托實例名 (實參列表 )。 ? 【 例 】 委托的實例化和調(diào)用示例 1 ? 【 例 】 委托的實例化和調(diào)用示例 2 ? 無需先聲明類或結(jié)構(gòu)以及與委托匹配的方法,而是在創(chuàng)建委托的實例時,直接聲明與委托匹配的方法的代碼塊(匿名方法) ? 委托名 委托實例名 = new delegate([形參列表 ]) ? { ? 方法體 。 ? }[。] ? 【 例 】 匿名方法委托示例 ? 委托也可以包含多個方法,這種委托稱為多播委托 ? 如果調(diào)用多播委托實例,則按順序依次調(diào)用多播委托實例封裝的調(diào)用列表中的多個方法 ? 聲明多播委托時,其返回類型必須為 void,因為無法處理多次調(diào)用的返回值,而且不能帶輸出參數(shù)(但可以帶引用參數(shù)) ? 多播委托通過 + 或 += 向多播委托實例封裝的調(diào)用列表中添加方法;通過 – 或 = 從多播委托實例封裝的調(diào)用列表中刪除方法 ? 【 例 】 多播委托示例 ? D和 M的參數(shù)數(shù)目相同,且各自對應參數(shù)具有相同的 ref或 out修飾符; ? 對于每個 ref或 out參數(shù), D中的參數(shù)類型與 M中的參數(shù)類型相同。 ? 存在從 M的返回類型到 D的返回類型的標識或隱式引用轉(zhuǎn)換。即允許方法具有的派生返回類型比委托中定義的更多(協(xié)變)。 ? 每一個值參數(shù)(沒有 ref 或 out 修飾符的參數(shù))都存在從 D中的參數(shù)類型到 M中的對應參數(shù)類型的標識或隱式引用轉(zhuǎn)換。允許方法具有的派生參數(shù)類型比委托類型中的更少(逆變) ? 【 例 】 委托的兼容性示例 ? 類或?qū)ο罂梢酝ㄟ^事件( event)向其他類或?qū)ο笸ㄖl(fā)生的相關(guān)事情。發(fā)送(或引發(fā))事件的類稱為“發(fā)行者”(生產(chǎn)者),接收(或處理)事件的類稱為“訂戶”(消費者)。 ? 事件是一種使對象或類能夠提供通知的成員??蛻舳丝梢酝ㄟ^提供事件處理程序( event handler)為相應的事件添加可執(zhí)行代碼。 ? 事件是對象發(fā)送的消息,以發(fā)信號通知操作的發(fā)生。操作可能是由用戶交互(例如鼠標單擊)引起的,也可能是由某些其他的程序邏輯觸發(fā)的 事件特點 ? 發(fā)行者確定何時引發(fā)事件,訂戶確定執(zhí)行何種操作來響應該事件 ? 一個事件可以有多個訂戶。一個訂戶可處理來自多個發(fā)行者的多個事件 ? 沒有訂戶的事件永遠不會被調(diào)用 ? 事件通常用于通知用戶操作,例如,圖形用戶界面中的按鈕單擊或菜單選擇操作 ? 如果一個事件有多個訂戶,當引發(fā)該事件時,會同步調(diào)用多個事件處理程序 ? 可以利用事件同步線程 ? 在 .NET Framework 類庫中,事件是基于 EventHandler 委托和 EventArgs 基類的 事件處理機制 ? 事件實際上是委托的一種特殊形式。 C 使用一種委托模型來實現(xiàn)事件。事件模型分為事件生產(chǎn)者和事件消費者,其處理機制大致可以分為下列 4步 – 在事件生產(chǎn)者類中聲明一個事件成員,即某種事件處理委托(簡稱為事件委托)的實例(多播事件委托實例); – 在事件消費者類中聲明與事件委托相匹配的事件處理方法; – 通過“ +=” 向多播事件委托實例封裝的調(diào)用列表中添加事件處理方法,或通過“ =” 從多播事件委托實例封裝的調(diào)用列表中刪除事件處理方法; – 在事件生產(chǎn)者類中添加有關(guān)發(fā)生事件的代碼,即當滿足某種條件時(發(fā)生事件),則調(diào)用委托,即調(diào)用多播事件委托實例封裝的調(diào)用列表中添加的事件處理方法。如果沒有訂閱,即事件實例為 Null,則不作任何處理 ? 【 例 】 事件處理機制示例 事件的聲明 、 訂閱和取消 ? 聲明: [修飾符 ] event 事件委托名 事件名 。 ? C使用加法賦值運算符( +=)來為事件附加事件處理程序;使用減法賦值運算符( =)取消訂閱事件,所有訂戶都取消訂閱事件后,發(fā)行者類中的事件實例將設置為 null –對象 .事件名 += 委托實例 。 –對象 .事件名 = 委托實例 。 ? 綜合舉例:實現(xiàn)事件的步驟 實驗和習題 ? 實驗 57 ? 第九章 例 91~例 97 ? 第 9章 委托和事件 –單選題 –填空題 –思考題 第 10章 結(jié)構(gòu)和枚舉 ?結(jié)構(gòu)與類的區(qū)別 ?結(jié)構(gòu)的聲明和調(diào)用 ?枚舉的聲明和使用 ?枚舉的運算 ? 結(jié)構(gòu) ? 結(jié)構(gòu)與類很相似,均為包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結(jié)構(gòu) ? 結(jié)構(gòu)是值類型,因而可以通過裝箱 /拆箱操作,實現(xiàn)與 object類型或由該結(jié)構(gòu)實現(xiàn)的接口類型之間的轉(zhuǎn)換 結(jié)構(gòu)和類的 區(qū)別 ? 結(jié)構(gòu)是值類型且被稱為具有值語義;而類是引用類型且被稱為具有引用語義。對結(jié)構(gòu)類型變量進行賦值意味著將創(chuàng)建所賦的值的一個副本。而對類變量的賦值,所復制的是引用,而不是復制由該引用所標識的對象 ? 對于結(jié)構(gòu),不像類那樣存在繼承。一個結(jié)構(gòu)不能從另一個結(jié)構(gòu)或類繼承,而且不能作為一個類的基,結(jié)構(gòu)聲明可以指定實現(xiàn)的接口列表。但是,所有結(jié)構(gòu)都直接繼承自 ,而 自 ? 結(jié)構(gòu)類型永遠不會是抽象的,并且始終是隱式密封的 ? 與類不同,結(jié)構(gòu)不允許聲明無形參實例構(gòu)造函數(shù)。相反,每個結(jié)構(gòu)隱式地具有一個無形參實例構(gòu)造函數(shù),該構(gòu)造函數(shù)始終返回相同的值,即通過將所有的值類型字段設置為它們的默認值,并將所有引用類型字段設置為 null 而得到的值。結(jié)構(gòu)可以聲明具有形參的實例構(gòu)造函數(shù) ? 在結(jié)構(gòu)中不允許聲明析構(gòu)函數(shù) 結(jié)構(gòu)的聲明 和調(diào)用 ? 聲明: – [特性 ] – [結(jié)構(gòu)修飾符 ][partial] struct 結(jié)構(gòu)名 [類型形參 ] [: 基接口 [類型形參約束 ]] – { – 結(jié)構(gòu)體 – }[。] ? 調(diào)用: – 結(jié)構(gòu)名 結(jié)構(gòu)變量名 = new結(jié)構(gòu)名 ([參數(shù)表 ])。 – 結(jié)構(gòu)名 結(jié)構(gòu)變量名 。 ? 【 例 】 結(jié)構(gòu)的調(diào)用示例 ? 【 例 】 嵌套結(jié)構(gòu)示例 ? 常量 ? 字段 ? 方法 ? 屬性 ? 事件 ? 索引器 ? 運算符重載 ? 帶參數(shù)構(gòu)造函數(shù) ? 嵌套結(jié)構(gòu) ?結(jié)構(gòu)不支持繼承(不能從一個結(jié)構(gòu)類型派生其它類型),所以結(jié)構(gòu)成員的聲明可訪問性不能是 protected或 protected internal ?結(jié)構(gòu)中的函數(shù)成員不能是 abstract或virtual, override修飾符只適用于重寫從 ?結(jié)構(gòu)不能聲明默認構(gòu)造函數(shù)(沒有參數(shù)的構(gòu)造函數(shù))或析構(gòu)函數(shù) ?編譯器提供默認構(gòu)造函數(shù)以將結(jié)構(gòu)成員初始化為它們的默認值 枚舉 ? 枚舉( enum)是值類型的一種特殊形式,用于聲明一組命名的常量 ? 可以將基礎類型的值分配給枚舉,反之亦然 ? 枚舉的聲明 : – [特性 ] – [枚舉修飾符 ] enum 枚舉名 [:基礎類型 ] – { – 枚舉體 – }[。] ? 枚舉的使用 : 枚舉名 .枚舉成員 。 ? 【 例 】 枚舉的使用示例 ? 【 例 】 枚舉的運算示例 ? 所有的枚舉默認都繼承于 ? Enum類提供若干靜態(tài)方法,可以用于枚舉的基本操作,包括:訪問枚舉成員的名稱和值;確定枚舉中是否存在一個值;把值轉(zhuǎn)換成枚舉類型;格式化枚舉值等 ? Enum類提供的一些方法參見表 101所示 ? 【 例 】 枚舉綜合示例 實驗和習題 ? 實驗六 結(jié)構(gòu)和枚舉 ? 第 10章 結(jié)構(gòu)和枚舉 –單選題
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1