【正文】
符串進(jìn)行讀取的 TextReader ? 表 168 StringReader類的主要成員 ? StringWriter類實(shí)現(xiàn)一個(gè)用于將信息寫入字符串的 TextWriter ? 表 169 StringWriter類的主要成員 ? 【 例 】 使用 StringReader類和StringWriter類讀寫字符串 ? FileStream類支持通過其 Seek 方法隨機(jī)訪問文件 ? BinaryReader類和 BinaryWriter類在 Streams 中讀取和寫入編碼的字符串和基元數(shù)據(jù)類型 FileStream類 ? FileStream類提供對(duì)文件進(jìn)行打開、讀取、寫入、關(guān)閉等操作,既支持同步讀寫操作,也支持異步讀寫操作。該模式描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。隨機(jī)數(shù)的生成是從種子( seed)值開始。線程池通常用于服務(wù)器應(yīng)用程序。通過線程的 Priority屬性可以獲取和設(shè)置其優(yōu)先級(jí) ? 表 141 線程優(yōu)先級(jí)值 ? 【 例 】 線程優(yōu)先級(jí)和線程調(diào)度示例 ? 線程的生命周期中包括各種執(zhí)行狀態(tài) ? 表 142 線程的執(zhí)行狀態(tài) ? 通過執(zhí)行相應(yīng)的操作,線程可以轉(zhuǎn)換為對(duì)應(yīng)的狀態(tài) ? 表 143 線程操作及操作后的狀態(tài) ? 當(dāng)多個(gè)線程可以調(diào)用單個(gè)對(duì)象的屬性和方法時(shí),一個(gè)線程可能會(huì)中斷另一個(gè)線程正在執(zhí)行的任務(wù),使該對(duì)象處于一種無效狀態(tài)。創(chuàng)建新線程的大致步驟如下: – 創(chuàng)建一個(gè)將在主線程外執(zhí)行的函數(shù),即類的方法,用于執(zhí)行新線程要執(zhí)行的邏輯操作 – 在主線程( Main方法)中創(chuàng)建一個(gè) Thread的實(shí)例,指向步驟 1中的函數(shù)。其基本形式為 (input parameters) = expression。特性類直接或間接地從 Attribute 派生,有助于方便快捷地在元數(shù)據(jù)中標(biāo)識(shí)特性定義 ? 特性類的聲明遵循下列規(guī)則: – 派生類的類名一般采用 XXXAttribute的命名規(guī)范,類名就是特性名。此時(shí)發(fā)送方參數(shù)可以為強(qiáng)類型,不再需要強(qiáng)制轉(zhuǎn)換成Object,或反向強(qiáng)制轉(zhuǎn)換 ? 【 例 】 泛型事件示例 ? 【 例 】 泛型綜合示例 實(shí)驗(yàn)和習(xí)題 ? 實(shí)驗(yàn) 71~74 ? 第 11章 泛型 –填空題 –思考題 –實(shí)踐題 第 12章 特性( Attribute) 特性的基本概念 特性的使用 預(yù)定義通用特性類 自定義特性類 使用反射訪問特性 ? C語言可以創(chuàng)建直接或間接派生于抽象類 ,稱之為特性( Attribute)類 ? 一個(gè)關(guān)于特性類的聲明定義一種新特性,特性可以被放置在其他聲明上,即附加到各種程序?qū)嶓w(包括類型、方法、屬性等),以添加元數(shù)據(jù)信息,如編譯器指令或數(shù)據(jù)描述 ? 特性主要為編譯器提供額外的信息,編譯器可以通過這些附加特性,自動(dòng)生成相應(yīng)的代碼,從而實(shí)現(xiàn)特定的功能。類型參數(shù)實(shí)際上并不是特定類型,而只是類型占位符。相反,每個(gè)結(jié)構(gòu)隱式地具有一個(gè)無形參實(shí)例構(gòu)造函數(shù),該構(gòu)造函數(shù)始終返回相同的值,即通過將所有的值類型字段設(shè)置為它們的默認(rèn)值,并將所有引用類型字段設(shè)置為 null 而得到的值。如果沒有訂閱,即事件實(shí)例為 Null,則不作任何處理 ? 【 例 】 事件處理機(jī)制示例 事件的聲明 、 訂閱和取消 ? 聲明: [修飾符 ] event 事件委托名 事件名 。發(fā)送(或引發(fā))事件的類稱為“發(fā)行者”(生產(chǎn)者),接收(或處理)事件的類稱為“訂戶”(消費(fèi)者)。 ? 調(diào)用: –委托實(shí)例名 (實(shí)參列表 )。與其他的類不同,委托類具有一個(gè)簽名,并且它只能對(duì)與其簽名匹配的方法進(jìn)行引用。] ? 【 例 】 匿名方法委托示例 ? 委托也可以包含多個(gè)方法,這種委托稱為多播委托 ? 如果調(diào)用多播委托實(shí)例,則按順序依次調(diào)用多播委托實(shí)例封裝的調(diào)用列表中的多個(gè)方法 ? 聲明多播委托時(shí),其返回類型必須為 void,因?yàn)闊o法處理多次調(diào)用的返回值,而且不能帶輸出參數(shù)(但可以帶引用參數(shù)) ? 多播委托通過 + 或 += 向多播委托實(shí)例封裝的調(diào)用列表中添加方法;通過 – 或 = 從多播委托實(shí)例封裝的調(diào)用列表中刪除方法 ? 【 例 】 多播委托示例 ? D和 M的參數(shù)數(shù)目相同,且各自對(duì)應(yīng)參數(shù)具有相同的 ref或 out修飾符; ? 對(duì)于每個(gè) ref或 out參數(shù), D中的參數(shù)類型與 M中的參數(shù)類型相同。 ? 事件是對(duì)象發(fā)送的消息,以發(fā)信號(hào)通知操作的發(fā)生。 ? 綜合舉例:實(shí)現(xiàn)事件的步驟 實(shí)驗(yàn)和習(xí)題 ? 實(shí)驗(yàn) 57 ? 第九章 例 91~例 97 ? 第 9章 委托和事件 –單選題 –填空題 –思考題 第 10章 結(jié)構(gòu)和枚舉 ?結(jié)構(gòu)與類的區(qū)別 ?結(jié)構(gòu)的聲明和調(diào)用 ?枚舉的聲明和使用 ?枚舉的運(yùn)算 ? 結(jié)構(gòu) ? 結(jié)構(gòu)與類很相似,均為包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結(jié)構(gòu) ? 結(jié)構(gòu)是值類型,因而可以通過裝箱 /拆箱操作,實(shí)現(xiàn)與 object類型或由該結(jié)構(gòu)實(shí)現(xiàn)的接口類型之間的轉(zhuǎn)換 結(jié)構(gòu)和類的 區(qū)別 ? 結(jié)構(gòu)是值類型且被稱為具有值語義;而類是引用類型且被稱為具有引用語義。 – 結(jié)構(gòu)名 結(jié)構(gòu)變量名 。 – GenericListExampleStruct list3 = new GenericListExampleStruct()。但是,在代碼中,可以省略特性后綴“ Attribute” 預(yù)定義通用特性類 ? ConditionalAttribute類 ? ObsoleteAttribute類 ? AttributeUsageAttribute類 ? 全局特性 ConditionalAttribute類 ? Conditional特性是 ConditionalAttribute的別名,可應(yīng)用于類或結(jié)構(gòu)聲明中的返回類型為 void的方法。 – 使用 AttributeUsage特性指定特性類的限制條件 ? 【 例 】 創(chuàng)建特性類 AuthorAttribute 使用反射訪問特性 ? C通過反射技術(shù)來檢索用自定義特性定義的信息。將一個(gè)整數(shù)數(shù)組用作數(shù)據(jù)源;創(chuàng)建查詢:從整數(shù)數(shù)組中返回所有偶數(shù);執(zhí)行查詢并顯示查詢結(jié)果 LINQ查詢的完整操作示意圖 D a t a S o u r c eI t e m 1I t e m 2I t e m 3I t e m n. . .Q u e r yf r o m ?w h e r e ?s e l e c t . . .Q u e r y E x e c u t i o nf o r e a c h ( v a r i t e m i n Q u e r y )D o s o m e t h i n g w i t h i t e mG e t n e x t i t e mG e t d a t aR e t u r n e a c h i t e m 標(biāo)準(zhǔn)查詢運(yùn)算符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 排序操作按一個(gè)或多個(gè)屬性對(duì)序列的元素進(jìn)行排序。注意:一個(gè)線程不能針對(duì)另一個(gè)線程調(diào)用 。如果其他線程試圖進(jìn)入鎖定的代碼,則它將一直等待(即被阻止),直到該對(duì)象被釋放。這種重用使應(yīng)用程序可以避免為每個(gè)任務(wù)創(chuàng)建新線程的開銷 ? 一般可使用 ThreadPool類創(chuàng)建線程池。 ? C字符串是使用 string關(guān)鍵字聲明的一個(gè)字符數(shù)組。DirectoryInfo類提供實(shí)例方法,需要針對(duì)要操作的目錄路徑創(chuàng)建DirectoryInfo類的實(shí)例,然后調(diào)用相應(yīng)的實(shí)例方法,適用于對(duì)目錄路徑執(zhí)行多次操作 ? Directory類的靜態(tài)方法可以直接調(diào)用,而無需構(gòu)建對(duì)象實(shí)例,故適用于對(duì)目錄路徑執(zhí)行一次操作;然而 Directory類的靜態(tài)方法對(duì)所有方法都執(zhí)行安全檢查,如果需要多次重用某個(gè)對(duì)象,建議使用 DirectoryInfo的相應(yīng)實(shí)例方法 ? 表 162 Directory類的主要成員 ? 【 例 】 目錄的基本操作示例 1 ? 表 163 DirectoryInfo類的主要成員 ? 【 例 】 目錄的基本操作示例 2 ? File類和 FileInfo類提供用于文件基本操作的方法,包括創(chuàng)建、復(fù)制、移動(dòng)、重命名和刪除文件;打開文件,讀取文件內(nèi)容和追加內(nèi)容到文件;獲取和設(shè)置文件的創(chuàng)建、訪問及寫入的時(shí)間