《C#3.0完全參考手冊》是2010年清華大學出版社出版的圖書,作者是希爾特(HerbertSchildt)。
基本介紹
- 書名:C#3.0完全參考手冊
- 作者:希爾特(HerbertSchildt)
- 譯者:趙利通
- ISBN:9787302220725
- 定價:128.00元
- 出版社:清華大學出版社
- 出版時間:2010年03月01日
- 裝幀:平裝
- 開本:16開
內容簡介,作者簡介,圖書目錄,
內容簡介
《C# 3.0完全參考手冊》通過支持LINQ(Language Integrated Query,語言集成查詢),C# 3.0為C#編程帶來了徹底的變革,全球最優秀的暢銷書作者Herbert Schildt已經更新並擴展了他的經典編程參考手冊以詳細介紹C# 3.0。通過使用精心編寫的說明內容、權威人士的提示信息以及數百個示例,《C# 3.0完全參考手冊》深入介紹了C#的所有方面,包括它的關鍵字、語法和核心庫。另外,《C# 3.0完全參考手冊》詳細介紹了C# 3.0的新增功能,如LINQ、拉姆達表達式、隱式類型的變數和匿名類型。
這本綜合性指南採用了Herbert一貫的寫作風格,即條理清晰,語言精練,而且重點突出,是每個C#程式設計師不可或缺的參考資源。無論您是編程初學者還是老練的專業編程人員,都可以在這本權威書籍中找到關於所有C#問題的答案。
作者簡介
希爾特(Herbert Schildt),是世界頂級程式設計大師,全球頂尖編程圖書作者之一。他是C、C++、Java和C#程式語言的權威,也是Windows編程方面的專家。擁有伊利諾斯大學的計算機科學碩士學位。他的編程書籍在世界範圍內的銷量已經超過3000000冊,並被翻譯成多種語言流傳於世。
圖書目錄
第Ⅰ部分 C# 語 言
第1章 C#的起源 3
1.1 C#的族譜 3
1.1.1 C語言:現代程式設計的開端 3
1.1.2 OOP和C++語言的創建 4
1.1.3 Internet和Java的出現 4
1.1.4 C#的創建 5
1.1.5 C#的發展 6
1.2 C#如何與.NET Framework相關 7
1.3 公共語言運行庫的工作原理 7
1.4 託管和非託管代碼 8
第2章 C#概述 9
2.1 面向對象程式設計 9
2.1.1 封裝 10
2.1.2 多態性 10
2.1.3 繼承 11
2.2 簡單示例 11
2.2.1 C#命令行編譯器csc.exe 12
2.2.2 使用Visual Studio IDE 13
2.2.3 逐行分析第一個示例程式 17
2.3 處理語法錯誤 18
2.4 改寫示例一 19
2.5 簡單示例二 20
2.6 另一種數據類型 21
2.7 兩種控制語句 23
2.7.1 if語句 23
2.7.2 for循環 25
2.8 代碼塊 26
2.9 分號、定位和縮進 28
2.10 C#語言的關鍵字 28
2.11 標識符 29
2.12 .NET Framework類庫 30
第3章 數據類型、直接量和變數 31
3.1 數據類型的重要性 31
3.2 C#的數據類型 31
3.3 整數類型 32
3.4 浮點類型 34
3.5 decimal類型 36
3.6 字元類型 37
3.7 布爾類型 38
3.8 自定義輸出格式 39
3.9 直接量 42
3.9.1 十六進制直接量 42
3.9.2 字元轉義序列 43
3.9.3 字元串直接量 43
3.10 變數 45
3.10.1 初始化變數 45
3.10.2 動態初始化變數 46
3.10.3 隱式類型的變數 46
3.11 變數的作用域和生命周期 48
3.12 類型轉換 50
3.12.1 自動類型轉換 50
3.12.2 強制轉換不兼容的類型 51
3.13 表達式中的類型轉換 54
第4章 運算符 59
4.1 算術運算符 59
4.2 關係和邏輯運算符 63
4.3 賦值運算符 67
4.4 按位運算符 68
4.4.1 按位與、或、異或和取反運算符 69
4.4.2 移位運算符 75
4.4.3 按位複合賦值 77
4.5 問號(?)運算符 78
4.6 空白符和圓括弧 79
4.7 運算符優先權 79
第5章 程式控制語句 81
5.1 if語句 81
5.1.1 if語句嵌套 82
5.1.2 if-else-if階梯結構 83
5.2 switch語句 84
5.3 for循環 88
5.4 while循環 96
5.5 do-while循環 97
5.6 foreach循環 98
5.7 使用break語句退出循環 98
5.8 使用continue語句 101
5.9 goto語句 102
第6章 類和對象 105
6.1 類基礎 105
6.1.1 類的基本形式 105
6.1.2 定義類 106
6.2 如何創建對象 110
6.3 引用類型的變數和賦值 111
6.4 方法 111
6.4.1 給Building類添加方法 112
6.4.2 從方法返回 114
6.4.3 返回值 115
6.4.4 使用參數 117
6.4.5 給Building類添加帶參數的方法 119
6.4.6 避免產生不可到達的代碼 121
6.5 構造函式 121
6.5.1 帶參數的構造函式 122
6.5.2 給Building類添加構造函式 123
6.6 new運算符 124
6.7 垃圾回收和析構函式 125
6.8 this關鍵字 127
第7章 數組和字元串 131
7.1 數組 131
7.2 多維數組 135
7.2.1 二維數組 135
7.2.2 三維或更多維的數組 136
7.2.3 初始化多維數組 137
7.3 交錯數組 138
7.4 數組引用賦值 141
7.5 Length屬性 142
7.6 隱式類型的數組 145
7.7 foreach循環 147
7.8 字元串 150
7.8.1 構造字元串 151
7.8.2 操作字元串 151
7.8.3 字元串數組 154
7.8.4 字元串是不可變的 156
7.8.5 在switch語句中使用字元串 157
第8章 方法和類 159
8.1 控制對類成員的訪問 159
8.1.1 C#的訪問修飾符 159
8.1.2 公有訪問和私有訪問的套用 161
8.1.3 訪問控制:案例分析 161
8.2 給方法傳遞引用 166
8.3 使用ref和out參數 170
8.3.1 使用ref關鍵字 170
8.3.2 使用out關鍵字 172
8.3.3 對引用參數使用ref和out 174
8.4 使用數量可變的參數 176
8.5 返回對象 178
8.6 方法重載 182
8.7 構造函式重載 187
8.8 對象初始化器 193
8.9 Main()方法 194
8.9.1 從Main()返回值 194
8.9.2 給Main()傳遞參數 194
8.10 遞歸 196
8.11 理解static關鍵字 199
8.12 靜態類 204
第9章 運算符重載 207
9.1 運算符重載基礎 207
9.1.1 重載二元運算符 208
9.1.2 重載一元運算符 210
9.2 處理針對C#內置類型的運算 214
9.3 重載關係運算符 219
9.4 重載true和false 221
9.5 重載邏輯運算符 223
9.5.1 一種重載邏輯運算符的簡單方法 223
9.5.2 使用短路運算符 226
9.6 轉換運算符 230
9.7 運算符重載的注意事項 234
9.8 運算符重載的另一個示例 235
第10章 索引器和屬性 239
10.1 索引器 239
10.1.1 創建一維索引器 239
10.1.2 索引器重載 243
10.1.3 索引器不需要一個潛在的數組 245
10.1.4 多維索引器 246
10.2 屬性 249
10.2.1 自動實現屬性 254
10.2.2 對屬性使用對象初始化器 254
10.2.3 屬性限制 255
10.3 對存取器使用訪問修飾符 255
10.4 使用索引器和屬性 258
第11章 繼承 265
11.1 繼承基礎 265
11.2 成員訪問和繼承 268
11.3 構造函式和繼承 272
11.4 繼承和名稱隱藏 279
11.5 創建多級層次結構 282
11.6 構造函式的調用 285
11.7 基類引用和派生對象 286
11.8 虛方法和重寫 290
11.8.1 重寫方法的原因 294
11.8.2 套用虛方法 294
11.9 使用抽象類 298
11.10 使用sealed來阻止繼承 302
11.11 object類 302
11.11.1 裝箱和拆箱 304
11.11.2 object是否是通用數據類型 306
第12章 接口、結構和枚舉 309
12.1 接口 309
12.2 使用接口類型的引用 314
12.3 接口屬性 317
12.4 接口索引器 318
12.5 接口的繼承 320
12.6 接口繼承引起的名稱隱藏 321
12.7 顯式實現 321
12.8 在接口和抽象類之間選擇 324
12.9 .NET標準接口 324
12.10 結構 325
12.11 枚舉 330
12.11.1 初始化一個枚舉 332
12.11.2 指定枚舉的基本類型 332
12.11.3 使用枚舉 332
第13章 異常處理 335
13.1 System.Exception類 335
13.2 異常處理的基礎 335
13.2.1 使用try和catch 336
13.2.2 一個簡單的異常示例 336
13.2.3 另一個異常示例 338
13.3 未捕獲異常的後果 339
13.4 使用多個catch子句 341
13.5 捕獲所有的異常 342
13.6 嵌套try塊 344
13.7 拋出異常 345
13.8 finally語句 347
13.9 進一步分析異常類 349
13.10 派生異常類 352
13.11 捕獲派生類異常 356
13.12 checked語句和unchecked語句 357
第14章 I/O系統 361
14.1 C#的I/O依賴於數據流 361
14.1.1 位元組數據流和字元數據流 361
14.1.2 預定義數據流 361
14.1.3 數據流類 362
14.1.4 Stream類 362
14.1.5 位元組數據流類 363
14.1.6 字元數據流封裝類 363
14.1.7 二進制數據流 365
14.2 控制台I/O 365
14.2.1 讀取控制台輸入 365
14.2.2 使用ReadKey()方法 367
14.2.3 寫入控制台輸出 369
14.3 檔案數據流和面向位元組的檔案I/O操作 370
14.3.1 打開和關閉檔案 370
14.3.2 從FileStream中讀取位元組 372
14.3.3 寫入檔案 373
14.3.4 使用FileStream複製檔案 374
14.4 基於字元的檔案I/O操作 376
14.4.1 使用StreamWriter類 376
14.4.2 StreamReader類 378
14.5 重定向標準數據流 380
14.6 讀取和寫入二進制數據 382
14.6.1 BinaryWriter 382
14.6.2 BinaryReader 382
14.6.3 二進制I/O操作的程式示例 384
14.7 隨機訪問檔案 388
14.8 使用MemoryStream 391
14.9 StringReader和StringWriter 393
14.10 把數值型字元串轉換為內部表示格式 394
第15章 委託、事件和拉姆達表達式 399
15.1 委託 399
15.1.1 委託的方法組轉換 402
15.1.2 使用實例方法作為委託 402
15.1.3 多播委託 404
15.1.4 協變和逆變 406
15.1.5 System.Delegate 408
15.1.6 使用委託的原因 408
15.2 匿名函式 408
15.3 匿名方法 408
15.3.1 給匿名方法傳遞參數 409
15.3.2 從匿名方法中返回一個值 410
15.3.3 在匿名方法中使用外部變數 411
15.4 拉姆達表達式 413
15.4.1 拉姆達運算符 413
15.4.2 表達式拉姆達 413
15.4.3 語句拉姆達 416
15.5 事件 418
15.5.1 多播委託事件的示例 420
15.5.2 作為事件處理程式的實例方法和靜態方法的區別 422
15.5.3 使用事件存取器 424
15.5.4 事件的其他特性 429
15.6 對事件使用匿名方法和拉姆達表達式 429
15.7 .NET事件的規則 430
15.8 事件的套用:案例分析 433
第16章 名稱空間、預處理器和程式集 437
16.1 名稱空間 437
16.1.1 名稱空間的聲明 437
16.1.2 名稱空間可以避免名稱衝突 440
16.1.3 using命令 441
16.1.4 using命令的另一種形式 443
16.1.5 名稱空間的合成 445
16.1.6 嵌套名稱空間 446
16.1.7 全局名稱空間 448
16.1.8 使用名稱空間別名限定符(::) 448
16.2 預處理器 452
16.2.1 #define 452
16.2.2 #if和#endif 453
16.2.3 #else和#elif 454
16.2.4 #undef 456
16.2.5 #error 456
16.2.6 #warning 457
16.2.7 #line 457
16.2.8 #region和#endregion 457
16.2.9 #pragma 457
16.3 程式集和internal訪問修飾符 458
第17章 運行時類型標識、反射和特性 461
17.1 運行時類型標識 461
17.1.1 使用is運算符測試類型 461
17.1.2 使用as運算符 462
17.1.3 使用typeof運算符 464
17.2 反射 465
17.3 使用反射 467
17.3.1 獲取方法的相關信息 467
17.3.2 GetMethods()的另一種形式 470
17.3.3 使用反射調用方法 471
17.3.4 獲取Type對象的構造函式 474
17.3.5 從程式集獲得類型 478
17.3.6 全自動類型查詢 483
17.4 特性 486
17.4.1 特性基礎 486
17.4.2 創建特性 486
17.4.3 連線特性 487
17.4.4 獲取對象的特性 487
17.4.5 位置參數和命名參數 489
17.5 三個內置特性 493
17.5.1 AttributeUsage特性 493
17.5.2 Conditional特性 494
17.5.3 Obsolete特性 495
第18章 泛型 497
18.1 泛型概念 497
18.2 一個簡單的泛型示例 498
18.2.1 泛型類型因類型參數的不同而不同 501
18.2.2 泛型如何實現類型安全 501
18.3 使用兩個類型參數的泛型類 504
18.4 泛型類的通用形式 505
18.5 類型約束 505
18.5.1 基類約束 506
18.5.2 接口約束 514
18.5.3 new()構造函式約束 518
18.5.4 引用類型和值類型約束 519
18.5.5 使用約束建立兩個類型參數之間的關係 522
18.5.6 使用多重約束 523
18.6 創建類型參數的默認值 524
18.7 泛型結構 525
18.8 創建泛型方法 526
18.8.1 調用泛型方法時顯式地指定類型實參 529
18.8.2 為泛型方法指定約束 529
18.9 泛型委託 529
18.10 泛型接口 532
18.11 比較同一類型參數的實例 536
18.12 泛型類的層次結構 539
18.12.1 使用泛型基類 539
18.12.2 泛型派生類 541
18.13 重寫泛型類中的虛方法 542
18.14 重載帶類型參數的方法 544
18.15 泛型類型的實例化 545
18.16 使用泛型時的一些局限 546
18.17 小結 546
第19章 LINQ 547
19.1 LINQ的定義 547
19.2 LINQ的基礎知識 548
19.2.1 簡單查詢 548
19.2.2 查詢可以多次執行 550
19.2.3 查詢中的數據類型的關聯方式 551
19.2.4 查詢的一般形式 552
19.3 使用where子句篩選值 552
19.4 使用orderby子句排序結果 554
19.5 深入討論select子句 558
19.6 使用嵌套的from子句 561
19.7 使用group子句分組結果 562
19.8 使用into子句創建繼續 564
19.9 在查詢中使用let子句創建變數 566
19.10 使用join子句連線兩個序列 567
19.11 匿名類型 570
19.12 創建組連線 572
19.13 查詢方法 575
19.13.1 基本查詢方法 575
19.13.2 使用查詢方法創建查詢 576
19.13.3 查詢語法與查詢方法的對比 578
19.13.4 更多與查詢相關的擴展方法 578
19.14 延期執行查詢和立即執行查詢 581
19.15 表達式樹 582
19.16 擴展方法 583
第20章 不安全代碼、指針、空類型和其他主題 587
20.1 不安全代碼 587
20.1.1 指針基礎 588
20.1.2 使用unsafe關鍵字 589
20.1.3 使用fixed修飾符 590
20.1.4 通過指針訪問結構成員 591
20.1.5 指針運算 591
20.1.6 指針的比較 593
20.1.7 指針和數組 593
20.1.8 指針和字元串 595
20.1.9 多重間接定址 596
20.1.10 指針數組 597
20.1.11 sizeof 597
20.1.12 stackalloc 597
20.1.13 創建固定大小的緩衝區 598
20.2 空類型 599
20.2.1 空類型基礎 600
20.2.2 表達式中的空對象 601
20.2.3 ??運算符 602
20.2.4 在空對象上使用關係和邏輯運算符 603
20.3 部分類型 604
20.4 部分方法 605
20.5 友元程式集 606
20.6 其他關鍵字 607
20.6.1 lock關鍵字 607
20.6.2 readonly關鍵字 607
20.6.3 const和volatile關鍵字 608
20.6.4 using語句 608
20.7 extern關鍵字 609
20.7.1 聲明extern方法 610
20.7.2 聲明extern程式集別名 611
第Ⅱ部分 C#類庫研究
第21章 研究System名稱空間 615
21.1 System的成員 615
21.2 Math類 617
21.3 與內置值類型對應的.NET結構 622
21.3.1 整型結構 623
21.3.2 浮點類型結構 625
21.3.3 Decimal結構 628
21.3.4 Char結構 633
21.3.5 Boolean結構 638
21.4 Array類 639
21.4.1 排序和搜尋數組 646
21.4.2 反轉數組 649
21.4.3 複製數組 649
21.4.4 使用謂詞 650
21.4.5 使用Action委託 652
21.5 BitConverter類 653
21.6 用Random產生隨機數 655
21.7 記憶體管理和GC類 656
21.8 Object類 657
21.9 IComparable和IComparable[T]接口 657
21.10 IEquatable[T]接口 658
21.11 IConvertible接口 658
21.12 ICloneable接口 658
21.13 IFormatProvider接口和
IFormattable接口 660
第22章 字元串和格式化 663
22.1 C#中的字元串 663
22.2 String類 663
22.2.1 字元串構造函式 664
22.2.2 String類的欄位、索引器和屬性 664
22.2.3 字元串運算符 665
22.2.4 字元串方法 665
22.2.5 填充和剪裁字元串 679
22.2.6 插入、刪除和替換 681
22.2.7 改變字母大小寫 682
22.2.8 使用Substring()方法 682
22.2.9 字元串擴展方法 683
22.3 格式化類型 683
22.3.1 格式化類型概述 683
22.3.2 數值型數據的格式說明符 684
22.3.3 理解參數編號 686
22.4 使用String.Format()和
ToString()格式化數據 686
22.4.1 使用String.Format()格式化值 686
22.4.2 使用ToString()格式化數據 689
22.5 自定義數字格式 690
22.6 格式化日期和時間 693
22.7 格式化枚舉 697
第23章 多執行緒程式設計 701
23.1 多執行緒基礎 701
23.2 Thread類 702
23.2.1 創建和啟動執行緒 702
23.2.2 一些簡單的改進 705
23.2.3 創建多個執行緒 706
23.3 確定執行緒結束的時間 708
23.4 為執行緒傳遞參數 710
23.5 IsBackground屬性 712
23.6 執行緒優先權 713
23.7 同步 715
23.7.1 實現同步的另一種方式 719
23.7.2 Monitor類和鎖 720
23.8 使用Wait()、Pulse()和PulseAll()實現執行緒通信 721
23.8.1 Wait()和Pulse()的示例 721
23.8.2 死鎖和競爭條件 725
23.9 使用MethodImplAttribute屬性 725
23.10 使用互斥鎖和信號量 727
23.10.1 互斥鎖 727
23.10.2 信號量 731
23.11 使用事件 734
23.12 Interlocked類 736
23.13 終止執行緒 737
23.13.1 Abort()的另一種形式 739
23.13.2 取消Abort() 740
23.14 掛起和恢複線程 742
23.15 判斷執行緒的狀態 742
23.16 使用主執行緒 742
23.17 多執行緒編程提示 744
23.18 開啟獨立任務 744
第24章 集合、枚舉器和疊代器 747
24.1 集合概述 747
24.2 非泛型集合 748
24.2.1 非泛型接口 748
24.2.2 DictionaryEntry結構 752
24.2.3 非泛型集合類 753
24.3 使用BitArray類存儲位 768
24.4 專用集合 770
24.5 泛型集合 771
24.5.1 泛型接口 771
24.5.2 KeyValuePair[TK,TV]結構 775
24.5.3 泛型集合類 775
24.6 在集合中存儲用戶自定義的類 793
24.7 實現IComparable接口 795
24.7.1 為非泛型集合實現IComparable接口 796
24.7.2 為泛型集合實現IComparable[T]接口 797
24.8 使用IComparer接口 799
24.8.1 使用非泛型的IComparer 799
24.8.2 使用泛型的IComparer[T] 800
24.9 通過枚舉器訪問集合 802
24.9.1 使用枚舉器 802
24.9.2 使用IDictionaryEnmerator 803
24.10 實現IEnumerable和IEnumerator接口 805
24.11 疊代器 806
24.11.1 停用疊代器 808
24.11.2 使用多個yield指令 809
24.11.3 創建命名疊代器 810
24.11.4 創建泛型疊代器 811
24.12 集合初始化器 812
第25章 通過Internet連網 813
25.2 統一資源標識符 815
25.3 Internet訪問基礎 815
25.3.1 WebRequest類 816
25.3.2 WebResponse類 818
25.3.3 HttpWebRequest類和HttpWebResponse類 819
25.3.4 第一個簡單的示例 819
25.4 處理網路錯誤 821
25.4.1 Create()產生的異常 822
25.4.2 GetResponse()產生的異常 822
25.4.3 GetResponseStream()產生的異常 822
25.4.4 使用異常處理 822
25.5 Uri類 824
25.6 訪問附加的HTTP回響信息 825
25.6.1 訪問報頭 826
25.6.2 訪問Cookie 827
25.6.3 使用LastModified屬性 829
25.7 MiniCrawler:案例分析 829
25.8 使用WebClient 833
第26章 使用System.Windows.Forms創建基於窗體的Windows應用程式 837
26.1 Windows程式設計簡史 837
26.2 編寫基於窗體的Windows應用程式的兩種方式 838
26.3 Windows與用戶互動操作的方法 838
26.4 Windows窗體 839
26.5 基於窗體的Windows框架程式 839
26.6 添加按鈕 841
26.6.1 按鈕概述 842
26.6.2 給窗體添加按鈕 842
26.6.3 簡單的按鈕示例 842
26.7 訊息處理 843
26.8 使用訊息框 845
26.9 添加選單 848
26.9.1 創建傳統樣式的主選單 848
26.9.2 使用MenuStrip創建新式選單 852
附錄A 文檔注釋快速參考 857