出版時間:2008-12 出版社:清華大學出版社 作者:(美)希爾雅德(Hilyard,J.),(美)特爾赫特(Teilhet,S.) 著,陳宗斌 等譯 頁數(shù):699 譯者:陳宗斌
Tag標簽:無
前言
C#語言是Microsoft公司為推行.NET戰(zhàn)略而發(fā)布的一種全新的編程語言。它是一種全新的、純面向對象的編程語言,具有清晰明了的語法結構、優(yōu)秀的編程開發(fā)環(huán)境和高效率的編譯工具。C#語言從C++語言發(fā)展而來,繼承了C++語言的所有優(yōu)點,同時根據(jù).NET戰(zhàn)略的需要增強了自身的功能,拋棄了C++中各種不安全因素,從而使程序員能夠更有效率地使用C#開發(fā)應用軟件。另外,C#在許多方面與Java相似;Java程序員一旦學習了Framework SDK,他們在C#中就會有一種賓至如歸的感覺。C#還非常適合于Visual Basic.NET程序員,當他們需要能夠更多地控制代碼執(zhí)行的任務并且不想為此編寫C++代碼時就可以使用C#。本書側重于解決C#程序員在開發(fā)應用程序時遇到的各類問題,并根此組織全書內(nèi)容。這些解決方案稱為秘訣;每個秘訣都包含一個問題,它的解決方案及相關信息的討論,最后還提供了關于使用FCL中的類的詳細信息的出處、針對這個主題的其他書籍、相關的文章以及其他秘訣。這種問題一答案格式提供了問題的完整解決方案,使得本書易于閱讀和使用。幾乎每個秘訣都包含一個完整的書面代碼示例,展示了如何解決特定的問題,還討論了底層技術的工作原理,并且根據(jù)需要列出了一些替代方法、限制條件及其他考慮事項。
內(nèi)容概要
當你在使用C#3.0的過程中陷入困境而需要快速找到解決方案時,為什么要辛苦地讀完一本教程呢?這本最暢銷書現(xiàn)在提供了超過250個代碼秘訣,針對的是C#程序員面臨的常見和不那么常見的問題。本書添加了許多新秘訣,從以前版本繼承來的大多數(shù)秘訣都經(jīng)過了修訂,以便幫助你利用C#3.0和.NET 3.5平臺提供的能力——以及克服它們提出的挑戰(zhàn)。本書用一整章的篇幅介紹了用于LINQ(語言級集成查詢)的秘訣,并用額外兩章介紹了使用擴展方法的秘訣,還介紹了lambda表達式、對象和集合初始化器、新的同步原語以及LINQ to XML等。本書中的每個秘訣都提供了對單個問題的解決方案,討論了它為什么會工作,并且提供了查找額外信息的資源。
作者簡介
作者:(美國)希爾雅德 (Hilyard.J) (美國)特爾赫特 (Teilher.S.) 譯者:陳宗斌
書籍目錄
前言第1章 語言級集成查詢(KINQ) 1.0 簡介 1.1 查詢消息隊列 1.2 使用帶有數(shù)據(jù)的集合語義 1.3 利用LINQ to SQL重用參數(shù)化查詢 1.4 以一種文化敏感的方式對結果排序 1.5 添加用于LINQ的功能擴展 1.6 跨數(shù)據(jù)庫執(zhí)行查詢和連接 1.7 利用LINQ查詢配置文件 1.8 直接從數(shù)據(jù)庫創(chuàng)建XML文件 1.9 有選擇地輸出查詢結果 1.10 結合使用LINQ與不支持IEnumerable的集合第2章 字符串和字符 2.0 簡介 2.1 確定char包含的字符種類 2.2 在比較兩個字符時控制大小寫敏感性 2.3 在一個字符串內(nèi)尋找另一個字符串出現(xiàn)的所有位置 2.4 在比較兩個字符串時控制大小寫敏感性 2.5 把一個字符串與另~個字符串的頭部或尾部作比較 2.6 插入文本到字符串中 2.7 刪除或替換字符串內(nèi)的字符 2.8 把二進制數(shù)據(jù)編碼為base64格式 2.9 解碼base64編碼的二進制數(shù)據(jù) 2.10 把作為byte[]返回的字符串轉換為字符串 2.11 把字符串傳遞給只接受byte[]的方法 2.12 把字符串轉換為其他類型 2.13 創(chuàng)建定界字符串 2.14 從定界字符串中提取數(shù)據(jù)項 2.15 遍歷字符串中的每個字符 2.16 從字符串的頭部和/或尾部刪除字符 2.17 測試字符串是否為null或者長度為O 2.18 追加行第3章 類和結構 3.0 簡介 3.1 創(chuàng)建聯(lián)合類型的結構 3.2 使類型可排序 3.3 使類型可檢索 3.4 間接重載+=、-=、/=和×=運算符 3.5 間接重載&&、II和?:運算符 3.6 創(chuàng)建無錯的表達式 3.7 簡化布爾邏輯 3.8 以程序設計語言無關的方式在簡單類型之間轉換 3.9 確定何時使用強制轉換運算符、as運算符或is運算符 3.10 利用as運算符進行強制轉換 3.1 1 利用is運算符確定變量的類型 3.12 從一個方法返回多個數(shù)據(jù)項 3.13 解析命令行參數(shù) 3.14 在運行時初始化常量字段 3.15 構建可復制的類 3.16 確保處理對象 3.17 處理非托管資源 3.18 確定裝箱和拆箱的位置 第4章 泛型 4.0 簡介 4.1 確定使用泛型的時間和位置 4.2 理解泛型類型 4.3 利用對應的泛型替換ArrayList 4.4 用對應的泛型替換Stack和Queue 4.5 使用鏈表 4.6 創(chuàng)建可以初始化為null的值類型 4.7 反轉有序鏈表中的內(nèi)容 4.8 以泛型方式創(chuàng)建只讀集合 4.9 利用對應的泛型替換Hashtable 4.10 對泛型Dictionary類型使用foreach 4.11 約束類型參數(shù) 4.12 將泛型變量初始化為它們的默認值 第5章 集合 5.0 簡介 5.1 交換數(shù)組中的兩個元素 5.2 快速反轉數(shù)組 5.3 編寫更靈活的StackTrace類 5.4 確定一個數(shù)據(jù)項在List中出現(xiàn)的次數(shù) 5.5 檢索List中的特定數(shù)據(jù)項的所有實例 5.6 從數(shù)組中插入和刪除數(shù)據(jù)項 5.7 保持List有序 5.8 對Dictionary的鍵和/或值排序 5.9 創(chuàng)建具有最大值和最小值界限的Dictionary 5.10 在數(shù)組中存儲列表的快照 5.11 維持應用程序會話之間的集合 5.12 測試Array或List中的每個元素 5.13 對Array或List中的每個元素執(zhí)行一種操作 5.14 創(chuàng)建只讀的Array或List第6章 迭代器、分部類型和分部方法 6.0 簡介 6.1 在泛型類型上創(chuàng)建迭代器 6.2 在非泛型類型上創(chuàng)建迭代器 6.3 創(chuàng)建自定義的枚舉器 6.4 實現(xiàn)迭代器邏輯 6.5 強制迭代器停止迭代 6.6 處理finally塊和迭代器 6.7 在類中實現(xiàn)嵌套的foreach功能 6.8 組織接口實現(xiàn) 6.9 生成不再位于主代碼路徑中的代碼 6.10 向生成的實體中添加掛鉤第7章 異常處理 7.0 簡介 7.1 知道何時捕獲和重新拋出異常, 7.2 使用finally塊時確保異常不會丟失 7.3 處理從通過反射調用的方法中拋出的異?!?.4 防止未處理的異?!?.5 獲取異常信息 7.6 快速找到問題的根源 7.7 創(chuàng)建新的異常類型 7.8 獲得棧記錄 7.9 在第一次機會的異常上中斷 7.10 處理從異步委托拋出的異?!?.11 利用Exception.Data給異常提供它們所需的額外信息 7.12 在WinForms應用程序中處理未處理的異常 7.13 處理Windows Presentation Foundation(WPF)應用程序中未處理的異?!?.14 為常見錯誤分析異常第8章 診斷 8.0 簡介 8.1 對調試/跟蹤輸出提供細粒度的控制 8.2 確定進程是否停止了響應 8.3 在應用程序中使用事件日志 8.4 查找事件日志條目 8.5 監(jiān)視事件日志中的特定條目 8.6 實現(xiàn)一個簡單的性能計數(shù)器 8.7 啟用和禁用復雜的跟蹤代碼 8.8 捕獲進程的標準輸出 8.9 為類創(chuàng)建自定義的調試顯示第9章 委托、事件和lambda表達式 9.0 簡介 9.1 控制何時以及是否在多播委托中觸發(fā)一個委托 9.2 從多播委托中的每個委托獲得返回值 9.3 為多播委托中的每個委托單獨處理異?!?.4 把同步委托調用轉換成異步委托調用 9.5 一種高級接口查找機制 9.6 觀察字典的添加和修改 9.7 使用larnbda表達式 9.8 清晰地建立事件處理程序 9.9 在lambda表達式中使用不同的參數(shù)修飾符 9.10 在C≠}中使用閉包 9.11 使用函子對列表執(zhí)行多種操作第10章 正則表達式 10.0 簡介 10.1 枚舉匹配 10.2 從MatchCollection中提取組 10.3 驗證正則表達式的語法 10.4 只快速查找字符串中的最后一個匹配 10.5 增強基本的字符串替換功能 10.6 實現(xiàn)更好的標記器 10.7 統(tǒng)計文本行數(shù) 10.8 返回在其中找到匹配的一整行內(nèi)容 10.9 找到出現(xiàn)的特定匹配 10.10 使用常見的模式第11章 數(shù)據(jù)結構與算法 11.0 簡介 11.1 為一種數(shù)據(jù)類型生成散列代碼 11.2 生成優(yōu)先級隊列 11.3 生成一對多映射(MultiMap) 11.4 生成一棵二叉查找樹 11.5 生成一棵n叉樹 11.6 使用HashSet對象第12章 文件系統(tǒng)I/O 12.0 簡介 12.1 操作文件屬性 12.2 重命名文件 12.3 輸出與平臺無關的EOL字符 12.4 操作目錄屬性 12.5 重命名目錄 12.6 使用通配符查找目錄或文件 12.7 獲取目錄樹 12.8 解析路徑 12.9 解析環(huán)境變量中的路徑 12.10 運行并與控制臺工具交互 12.11 鎖定文件的子段 12.12 等待文件系統(tǒng)中要發(fā)生的動作 12.13 比較兩個可執(zhí)行模塊的版本信息 12.14 查詢系統(tǒng)上所有驅動器的信息 12.15 壓縮及解壓縮文件第13章 反射 13.0 簡介 13.1 列出引用的程序集 13.2 列出導出的類型 13.3 找出重寫方法 13.4 找出程序集中的成員 13.5 確定并獲取程序集中的嵌套類型 13.6 顯示類型的繼承層次結構 13.7 找出類型的子類 13.8 找出程序集中所有可序列化的類型 13.9 動態(tài)調用成員 13.10確定類型或方法是否是泛型 13.11訪問局部變量信息 13.12生成泛型類型第1 4章 Web 14.0 簡介 14.1 將IP地址轉換為主機名 14.2 將主機名轉換為IP地址 14.3 解析URl 14.4 處理Web服務器錯誤 14.5 與Web服務器通信 14.6 通過代理服務器 14.7 從URL中獲取HTML 14.8 使用Web瀏覽器控件 14.9 將數(shù)據(jù)庫表與緩存綁定 14.10 通過編程預先構建一個ASP.NET網(wǎng)站 14.11 為Web對數(shù)據(jù)進行轉義與取消轉義 14.1 2 使用UriBuilder類 14.13 檢查并修改Web應用程序配置 14.14 在用HTTP時使用緩存的結果以使性能更快 14.15 檢測Web服務器的自定義錯誤頁第15章 XML 15.0 簡介 15.1 以文檔順序讀取并訪問XML數(shù)據(jù) 15.2 讀取Web上的XML 15.3 查詢XML文檔的內(nèi)容 15.4 檢驗XML 15.5 通過編程生成XML文檔 15.6 檢測對XML文檔的修改 15.7 處理XML字符串中的非法字符 15.8 XML的轉換 15.9 分割XML文檔 15.10 合并XML文檔 15.11 不重載驗證修改過的XML文件 15.12 擴展轉換 15.13 從已有XML文件中成批獲得用戶的模式 15.14 向轉換傳遞參數(shù)第16章 聯(lián)網(wǎng) 16.0 簡介 16.1 編寫一個TCP服務器端 16.2 編寫一個TCP客戶端 16.3 模擬表單執(zhí)行 16.4 通過HTTP傳送數(shù)據(jù) 16.5 使用命名管道進行通信 16.6 以編程方式發(fā)送Pin9 16.7 使用SMTP服務發(fā)送SMTP郵件 16.8 使用套接字掃描機器的端口 16.9 使用當前的互聯(lián)網(wǎng)連接設置 16.10 使用FTP傳輸文件第17章 安全性 17.0 簡介 17.1 控制對本地程序集中類型的訪問 17.2 加密/解密字符串 17.3 加密和解密文件 17.4 清理密碼信息 17.5 驗證字符串保持未破壞的流傳輸 17.6 安全存儲數(shù)據(jù) 17.7 保證安全斷言的安全 17.8 驗證程序集已經(jīng)具備特定許可 17.9 最小化程序集的攻擊面 17.10 獲得安全/審計信息 17.11 授權/撤銷對文件或注冊表鍵的訪問 17.12 使用安全字符串保護字符串數(shù)據(jù) 17.13 保護流數(shù)據(jù) 17.14 加密web.config信息 17.15 獲得拋出SecurityException的完整理由 17.16 實現(xiàn)安全的Unicode編碼 17.17 獲得一個更安全的文件句柄第18章 線程與同步 18.0 簡介 18.1 創(chuàng)建每個線程的靜態(tài)字段 18.2 向類成員提供線程安全的訪問 18.3 防止沉默的線程終止 18.4 同步委托完成的通知 18.5 秘密存儲特定線程的數(shù)據(jù) 18.6 使用信號量實現(xiàn)資源的多重訪問 18.7 使用Mutex同步多個進程 18.8 使用事件協(xié)調線程 18.9 為事件獲得命名權 18.10 在線程間執(zhí)行原子操作 18.11 優(yōu)化主讀訪問第19章 工具箱 19.0 簡介 19.1 處理操作系統(tǒng)關機、電源管理或用戶會話修改 19.3 列出加載程序集的進程 19.4 使用本地工作站上的消息隊列 19.5 找出當前框架版本的路徑 19.6 確定全局程序集緩存(GAC)中注冊的程序集版本 19.7 捕獲標準輸出流的輸出 19.8 運行位于自己的AppDomain中的代碼 19.9 確定操作系統(tǒng)和當前操作系統(tǒng)的服務包版本第20章 數(shù)字與枚舉 20.0 簡介 20.1 度與弧度之間的轉換 20.2 對各種數(shù)據(jù)類型使用按位求補運算符 20.3 將數(shù)字從某種基數(shù)轉換為基數(shù)10 20.4 確定一個字符串是否是合法數(shù)字 20.5 舍入浮點值 20.6 選擇一種舍入算法 20.7 溫度計數(shù)法之間的轉換 20.8 安全地執(zhí)行收縮數(shù)字強制轉換 20.9 將一個枚舉值顯示為字符串 20.10 將純文本轉換為等價的枚舉值 20.11 測試合法的枚舉值 20.12 測試合法的標志枚舉 20.13 使用位掩碼中的枚舉成員 20.14 確定一個或多個枚舉標志是否被設置 20.15 確定Decimal或Double數(shù)字的整數(shù)部分
章節(jié)摘錄
插圖:
編輯推薦
你將找到用于以下方面的秘訣: 你還將發(fā)現(xiàn)其他一些秘訣,它們用于加密和解密、控制對類型的訪問、安全地存儲數(shù)據(jù)、使用編程性 安全和聲明性安全等。所有的解決方案都是使用Visual Studi0.NET 2008開發(fā)的?! 禖#3.0 Cookbook(中文版)(第3版)》的補充資源是一個公共共建性網(wǎng)站,它包括C#2.0秘訣的以前版本,C#3.0版本沒有修改它們。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載