編輯推薦
這是一本全麵的C#編程參考書,用150多個範例詳細探討瞭C#開發中的諸多問題。所有範例中的代碼均經過驗證,可以直接在應用程序中重用。
第4版重新編寫瞭許多解決方案,以充分利用C#新的創新,例如新的錶達式級彆功能、成員聲明功能和語句級彆功能。本書還在範例中納入瞭動態編程和異步編程的新應用,幫助讀者瞭解如何應用這些語言特性。
本書涵蓋以下主題:
類和泛型
集閤、枚舉器和迭代器
數據類型
LINQ和lambda錶達式
異常處理
反射和動態編程
正則錶達式
文件係統交互
網絡和Web
XML的使用
綫程、同步和並發
內容簡介
本書共分為13章,每一章側重於特定主題的C#解決方案。具體內容包括:類和泛型,集閤、枚舉器和迭代器,數據類型,語言集成查詢和lambda錶達式,調試和異常處理,反射和動態編程,正則錶達式,文件係統I/O,網絡和Web,XML,安全,綫程、同步和並發,工具箱。本書使用大量範例,幫助開發人員快速理解並解決現實中的問題。
作者簡介
Jay Hilyard 擁有20多年為Windows平颱開發應用程序的經驗,為.NET平颱開發應用也超過瞭15年。他在MSDN Magazine上發錶過很多文章,目前在新罕布什爾州樸茨茅斯的Newmarket(Amadeus的一傢子公司)工作。
Stephen Teilhet 從pre-alpha版就開始使用.NET平颱,並且一直使用至今。他任職於IBM,是源代碼靜態安全分析工具的主管安全研究員。這一工具用於發現多種語言中的安全漏洞,如C#和Visual Basic。
徐敬德 2001年開始接觸和使用.NET和C#,之後持續關注C#語言發展,使用C#開發過ERP套件、商務智能軟件、Unity遊戲,曾負責將大眾點評網早期.NET 1.x網站遷移到基於.NET 2.0的SOA架構。曆任大眾點評網係統架構師、成都夢工廠技術總監、深圳豈凡CTO,有三年自主創業經曆。
目錄
目錄
第1章 類和泛型 1
1.0 簡介 1
1.1 創建聯閤類型的結構 3
1.2 使類型可排序 5
1.3 使類型可查找 9
1.4 從一個方法返迴多個數據項 12
1.5 解析命令行參數 15
1.6 在運行時初始化常量字段 25
1.7 構建可剋隆的類 28
1.8 確保對象的處置 31
1.9 確定何時何處使用泛型 33
1.10 理解泛型類型 34
1.11 反轉有序列錶中的內容 41
1.12 約束類型參數 43
1.13 將泛型變量初始化為默認值 46
1.14 嚮生成的實體中添加鈎子 48
1.15 控製如何觸發多播委托中的一個委托 50
1.16 在C#中使用閉包 56
1.17 使用函數對象在列錶中執行多種操作 61
1.18 控製結構類型字段初始化 64
1.19 以更簡潔的方式檢查null值 68
第2章 集閤、枚舉器和迭代器 72
2.0 簡介 72
2.1 尋找List中的重復數據項 74
2.2 保持List有序 78
2.3 對Dictionary 的鍵和/或值排序 80
2.4 創建具有最小值和最大值邊界的Dictionary 82
2.5 在應用程序會話間持久化一個集閤 84
2.6 測試Array或List中的每個元素 86
2.7 創建自定義枚舉器 88
2.8 處理finally語句塊和迭代器 91
2.9 在類中實現嵌套的foreach功能 95
2.10 使用綫程安全的字典進行並發訪問,不手動加鎖 99
第3章 數據類型 106
3.0 簡介 106
3.1 把二進製數據編碼為base64格式 108
3.2 解碼base64編碼的二進製數據 109
3.3 把作為byte[]返迴的字符串轉換為字符串 110
3.4 把字符串傳遞給隻接受byte[]的方法 112
3.5 確定一個字符串是否為有效的數字 113
3.6 捨入浮點值 114
3.7 選擇一種捨入算法 115
3.8 安全地執行窄化數據轉換 116
3.9 測試有效的枚舉值 118
3.10 在位掩碼中使用枚舉成員 120
3.11 確定是否設置瞭一個或多個枚舉標誌 122
第4章 語言集成查詢和lambda錶達式 126
4.0 簡介 126
4.1 查詢消息隊列 128
4.2 對數據使用集閤語義 132
4.3 利用LINQ to SQL重用參數化查詢 136
4.4 以文化敏感的方式對結果排序 138
4.5 添加用於LINQ的函數式擴展 141
4.6 跨數據庫執行查詢和聯接 144
4.7 利用LINQ查詢配置文件 147
4.8 從數據庫直接創建XML文件 150
4.9 有選擇地輸齣查詢結果 162
4.10 將LINQ用於不支持IEnumerable的集閤 165
4.11 執行高級接口查找 167
4.12 使用lambda錶達式 168
4.13 在lambda錶達式中使用不同的參數修飾符 173
4.14 用並行來加速LINQ操作 176
第5章 調試和異常處理 187
5.0 簡介 187
5.1 知道何時捕獲並重新引發異常 193
5.2 處理通過反射調用的方法引發的異常 194
5.3 創建新的異常類型 197
5.4 在首次異常上中斷 204
5.5 處理從異步委托中引發的異常 209
5.6 利用Exception.Data為異常提供所需的額外信息 211
5.7 在WinForms應用程序中處理未經處理的異常 213
5.8 在WPF應用程序中處理未經處理的異常 214
5.9 確定一個進程是否停止瞭響應 217
5.10 在應用程序中使用事件日誌 219
5.11 監視事件日誌中的特定條目 229
5.12 實現一個簡單的性能計數器 230
5.13 為類創建自定義的調試顯示 233
5.14 跟蹤異常從何而來 235
5.15 在異步情境下處理異常 237
5.16 有選擇地處理異常 243
第6章 反射和動態編程 247
6.0 簡介 247
6.1 列齣引用的程序集 248
6.2 確定程序集中的類型特徵 252
6.3 確定繼承特徵 256
6.4 使用反射調用成員 261
6.5 訪問局部變量信息 264
6.6 創建一個泛型類型 267
6.7 使用dynamic與使用object 268
6.8 動態構建對象 271
6.9 使對象可擴展 275
第7章 正則錶達式 284
7.0 簡介 284
7.1 從MatchCollection中提取組 285
7.2 驗證正則錶達式的語法 288
7.3 增強基本的字符串替換函數 289
7.4 實現一個更好的分詞器 292
7.5 返迴匹配所在的整行內容 293
7.6 找到特定次數的匹配 297
7.7 使用常見模式 299
第8章 文件係統I/O 303
8.0 簡介 303
8.1 使用通配符查找目錄和文件 304
8.2 獲取目錄樹 309
8.3 解析路徑 313
8.4 啓動並與控製颱工具交互 314
8.5 鎖定文件的一部分 316
8.6 等待文件係統中的動作發生 320
8.7 比較兩個可執行模塊的版本信息 322
8.8 查詢係統上所有驅動器的信息 325
8.9 壓縮和解壓縮文件 327
第9章 網絡和Web 337
9.0 簡介 337
9.1 處理Web服務器錯誤 338
9.2 與Web服務器通信 339
9.3 通過代理服務器 341
9.4 從一個URL獲取HTML 343
9.5 使用Web瀏覽器控件 344
9.6 以編程方式預構建一個ASP.NET網站 346
9.7 為Web應用對數據進行轉義和取消轉義 349
9.8 檢查Web服務器的自定義錯誤頁 351
9.9 編寫一個TCP服務器 355
9.10 編寫一個TCP客戶端 362
9.11 模擬錶單執行 370
9.12 通過HTTP傳輸數據 373
9.13 使用命名管道進行通信 377
9.14 以編程方式發送ping 386
9.16 使用套接字掃描機器的端口 388
9.17 使用當前的互聯網連接設置 392
9.18 使用FTP傳輸文件 398
第10章 XML 401
10.0 簡介 401
10.1 以文檔順序讀取和訪問XML數據 401
10.2 查詢XML文檔的內容 405
10.3 驗證XML 409
10.4 檢測對XML文檔的修改 413
10.5 處理XML字符串中的無效字符 416
10.6 轉換XML 419
10.7 驗證修改過的XML文檔而無需重新加載 427
10.8 擴展轉換 430
10.9 從現有XML文件批量獲取架構 436
10.10 將參數傳遞給轉換 438
第11章 安全 443
11.0 簡介 443
11.1 加密和解密字符串 443
11.2 加密和解密文件 447
11.3 清理密碼算法信息 452
11.4 避免字符串在傳輸或靜止時被篡改 454
11.5 保證安全斷言的安全 460
11.6 驗證是否已授予程序集特定權限 462
11.7 最小化程序集的攻擊麵 463
11.8 獲得安全和/或審計信息 464
11.9 授權或撤銷對文件或注冊錶項的訪問 469
11.10 使用安全字符串保護字符串數據 472
11.11 保護流數據 474
11.12 加密web.config信息 486
11.13 獲得一個更安全的文件句柄 488
11.14 保存密碼 489
第12章 綫程、同步和並發 496
12.0 簡介 496
12.1 創建每綫程靜態字段 497
12.2 對類成員提供綫程安全的訪問 499
12.3 避免沉默的綫程終止 505
12.4 在異步委托完成時獲得通知 507
12.5 私有化存儲綫程特定的數據 509
12.6 使用信號量允許資源的多重訪問 512
12.7 使用互斥量同步多個進程 516
12.8 使用事件協調綫程 525
12.9 在多綫程間執行原子操作 527
12.10 優化以讀為主的訪問 528
12.11 使數據庫請求更具擴展性 541
12.12 以一定順序運行任務 543
第13章 工具箱 549
13.0 簡介 549
13.1 處理操作係統關機、電源管理或用戶會話變化 549
13.2 控製係統服務 554
13.3 列齣加載一個程序集的進程 558
13.4 使用本地工作站上的消息隊列 561
13.5 捕獲標準輸齣流的輸齣 564
13.6 捕獲一個進程的標準輸齣 566
13.7 在它自己的AppDomain中運行代碼 568
13.8 確定當前操作係統的操作係統和Service Pack版本 570
關於作者 572
關於封麵 572
C#經典實例 第4版 下載 mobi epub pdf txt 電子書 格式