第Ⅰ部分 C#語言
第1章 C#簡介 3
1.1 .NET Framework的含義 3
1.1.1 .NET Framework的內容 4
1.1.2 使用.NET Framework編寫應用程序 4
1.2 C#的含義 7
1.2.1 用C#能編寫什麼樣的應用程序 7
1.2.2 本書中的C# 8
1.3 Visual Studio 2010 8
1.3.1 Visual Studio 2010 Express産品 9
1.3.2 解決方案 9
1.4 小結 9
1.5 本章要點 10
第2章 編寫C#程序 11
2.1 開發環境 12
2.1.1 Visual Studio 2010 12
2.1.2 Visual C# 2010 Express Edition 14
2.2 控製颱應用程序 15
2.2.1 Solution Explorer 19
2.2.2 Properties窗口 20
2.2.3 Error List窗口 20
2.3 Windows Forms應用程序 21
2.4 小結 25
2.5 本章要點 25
第3章 變量和錶達式 27
3.1 C#的基本語法 27
3.2 C#控製颱應用程序的
基本結構 30
3.3 變量 31
3.3.1 簡單類型 31
3.3.2 變量的命名 35
3.3.3 字麵值 36
3.3.4 變量的聲明和賦值 38
3.4 錶達式 39
3.4.1 數學運算符 39
3.4.2 賦值運算符 43
3.4.3 運算符的優先級 44
3.4.4 名稱空間 45
3.5 小結 47
3.6 練習 48
3.7 本章要點 49
第4章 流程控製 51
4.1 布爾邏輯 51
4.1.1 布爾賦值運算符 54
4.1.2 按位運算符 55
4.1.3 運算符優先級的更新 59
4.2 goto語句 60
4.3 分支 61
4.3.1 三元運算符 61
4.3.2 if語句 61
4.3.3 switch語句 65
4.4 循環 68
4.4.1 do循環 68
4.4.2 while循環 71
4.4.3 for循環 73
4.4.4 循環的中斷 77
4.4.5 無限循環 78
4.5 小結 78
4.6 練習 79
4.7 本章要點 79
第5章 變量的更多內容 81
5.1 類型轉換 81
5.1.1 隱式轉換 82
5.1.2 顯式轉換 83
5.1.3 使用Convert命令進行
顯式轉換 86
5.2 復雜的變量類型 89
5.2.1 枚舉 89
5.2.2 結構 93
5.2.3 數組 96
5.3 字符串的處理 102
5.4 小結 106
5.5 練習 107
5.6 本章要點 108
第6章 函數 109
6.1 定義和使用函數 110
6.1.1 返迴值 111
6.1.2 參數 113
6.2 變量的作用域 120
6.2.1 其他結構中變量的作用域 122
6.2.2 參數和返迴值與全局數據 124
6.3 Main()函數 125
6.4 結構函數 128
6.5 函數的重載 128
6.6 委托 130
6.7 小結 133
6.8 練習 133
6.9 本章要點 134
第7章 調試和錯誤處理 135
7.1 VS和VCE中的調試 135
7.1.1 非中斷(正常)模式下的
調試 136
7.1.2 中斷模式下的調試 144
7.2 錯誤處理 152
7.2.1 try...catch...finally 153
7.2.2 列齣和配置異常 157
7.2.3 異常處理的注意事項 158
7.3 小結 159
7.4 練習 159
7.5 本章要點 159
第8章 麵嚮對象編程簡介 161
8.1 麵嚮對象編程的含義 162
8.1.1 對象的含義 162
8.1.2 一切皆對象 165
8.1.3 對象的生命周期 165
8.1.4 靜態和實例類成員 166
8.2 OOP技術 167
8.2.1 接口 167
8.2.2 繼承 169
8.2.3 多態性 171
8.2.4 對象之間的關係 172
8.2.5 運算符重載 173
8.2.6 事件 174
8.2.7 引用類型和值類型 174
8.3 Windows應用程序中的OOP 175
8.4 小結 177
8.5 練習 177
8.6 本章要點 178
第9章 定義類 179
9.1 C#中的類定義 179
9.2 System.Object 184
9.3 構造函數和析構函數 185
9.4 VS和VCE中的OOP工具 190
9.4.1 Class View窗口 190
9.4.2 對象瀏覽器 192
9.4.3 添加類 193
9.4.4 類圖 194
9.5 類庫項目 196
9.6 接口和抽象類 199
9.7 結構類型 201
9.8 淺度和深度復製 203
9.9 小結 203
9.10 練習 204
9.11 本章要點 204
第10章 定義類成員 205
10.1 成員定義 205
10.1.1 定義字段 206
10.1.2 定義方法 206
10.1.3 定義屬性 207
10.1.4 在類圖中添加成員 212
10.1.5 重構成員 215
10.1.6 自動屬性 216
10.2 類成員的其他議題 217
10.2.1 隱藏基類方法 217
10.2.2 調用重寫或隱藏的
基類方法 219
10.2.3 嵌套的類型定義 220
10.3 接口的實現 220
10.4 部分類定義 224
10.5 部分方法定義 225
10.6 示例應用程序 227
10.6.1 規劃應用程序 227
10.6.2 編寫類庫 228
10.6.3 類庫的客戶應用程序 235
10.7 Call Hierarchy窗口 236
10.8 小結 237
10.9 練習 237
10.10 本章要點 238
第11章 集閤、比較和轉換 239
11.1 集閤 239
11.1.1 使用集閤 240
11.1.2 定義集閤 246
11.1.3 索引符 247
11.1.4 給CardLib添加Cards
集閤 250
11.1.5 關鍵字值集閤和
IDictionary 252
11.1.6 迭代器 254
11.1.7 深復製 259
11.1.8 給CardLib添加深復製 261
11.2 比較 263
11.2.1 類型比較 263
11.2.2 值比較 268
11.3 轉換 283
11.3.1 重載轉換運算符 284
11.3.2 as運算符 285
11.4 小結 286
11.5 練習 286
11.6 本章要點 287
第12章 泛型 289
12.1 泛型的概念 289
12.2 使用泛型 291
12.2.1 可空類型 291
12.2.2 System.Collections.Generic
名稱空間 297
12.3 定義泛型類型 307
12.3.1 定義泛型類 308
12.3.2 定義泛型接口 319
12.3.3 定義泛型方法 319
12.3.4 定義泛型委托 321
12.4 變體 321
12.4.1 協變 322
12.4.2 抗變 323
12.5 小結 324
12.6 練習 324
12.7 本章要點 325
第13章 其他OOP技術 327
13.1 ::運算符和全局名稱空間
限定符 327
13.2 定製異常 329
13.3 事件 331
13.3.1 事件的含義 331
13.3.2 處理事件 332
13.3.3 定義事件 334
13.4 擴展和使用CardLib 343
13.5 小結 351
13.6 練習 352
13.7 本章要點 352
第14章 C#語言的改進 353
14.1 初始化器 353
14.1.1 對象初始化器 354
14.1.2 集閤初始化器 356
14.2 類型推理 359
14.3 匿名類型 360
14.4 動態查找 364
14.4.1 dynamic類型 365
14.4.2 IdynamicMetaObject-
Provider 369
14.5 高級方法參數 369
14.5.1 可選參數 369
14.5.2 命名參數 371
14.5.3 命名參數和可選參數
的規則 375
14.6 擴展方法 375
14.7 Lambda錶達式 379
14.7.1 復習匿名方法 379
14.7.2 把Lambda錶達式用於
匿名方法 380
14.7.3 Lambda錶達式的參數 383
14.7.4 Lambda錶達式的
語句體 384
14.7.5 Lambda錶達式用作委托
和錶達式樹 385
14.7.6 Lambda錶達式和集閤 386
14.8 小結 388
14.9 練習 389
14.10 本章要點 390
第Ⅱ部分 Windows 編 程
第15章 Windows編程基礎 393
15.1 控件 393
15.1.1 屬性 394
15.1.2 控件的定位、停靠和
對齊 395
15.1.3 Anchor和Dock屬性 395
15.1.4 事件 396
15.2 Button控件 398
15.2.1 Button控件的屬性 398
15.2.2 Button控件的事件 398
15.2.3 添加事件處理程序 399
15.3 Label和LinkLabel控件 400
15.4 TextBox控件 401
15.4.1 TextBox控件的屬性 401
15.4.2 TextBox控件的事件 402
15.4.3 添加事件處理程序 404
15.5 RadioButton和CheckBox
控件 407
15.5.1 RadioButton控件的
屬性 408
15.5.2 RadioButton控件的
事件 408
15.5.3 CheckBox控件的屬性 408
15.5.4 CheckBox控件的事件 409
15.5.5 GroupBox控件 409
15.6 RichTextBox控件 412
15.6.1 RichTextBox控件的
屬性 412
15.6.2 RichTextBox控件的
事件 413
15.7 ListBox和CheckedListBox
控件 418
15.7.1 ListBox控件的屬性 418
15.7.2 ListBox控件的方法 419
15.7.3 ListBox控件的事件 420
15.8 ListView控件 422
15.8.1 ListView控件的屬性 422
15.8.2 ListView控件的方法 424
15.8.3 ListView控件的事件 424
15.8.4 ListViewItem 425
15.8.5 ColumnHeader 425
15.8.6 ImageList控件 425
15.9 TabControl控件 431
15.9.1 TabControl控件的屬性 432
15.9.2 使用TabControl控件 432
15.10 小結 434
15.11 練習 434
15.12 本章要點 434
第16章 Windows窗體的高級功能 435
16.1 菜單和工具欄 435
16.1.1 兩個實質一樣的控件 436
16.1.2 使用MenuStrip控件 436
16.1.3 手工創建菜單 436
16.1.4 ToolStripMenuItem
控件的其他屬性 438
16.1.5 給菜單添加功能 438
16.2 工具欄 440
16.2.1 ToolStrip控件的屬性 441
16.2.2 ToolStrip的項 441
16.2.3 StatusStrip控件 445
16.2.4 StatusStripStatusLabel
的屬性 446
16.3 SDI和MDI應用程序 448
16.4 生成MDI應用程序 449
16.5 創建控件 456
16.5.1 調試用戶控件 461
16.5.2 擴展LabelTextbox控件 461
16.6 小結 464
16.7 練習 464
16.8 本章要點 464
第17章 部署Windows應用程序 465
17.1 部署概述 465
17.2 ClickOnce 部署 466
17.2.1 創建ClickOnce部署 466
17.2.2 用ClickOnce安裝
應用程序 474
17.2.3 創建和使用應用程序
的更新包 476
17.3 Visual Studio安裝和部署
項目類型 477
17.4 Microsoft Windows安裝
程序結構 478
17.4.1 Windows安裝程序術語 478
17.4.2 Windows安裝程序
的優點 480
17.5 為MDI Editor創建安裝
軟件包 480
17.5.1 規劃安裝內容 480
17.5.2 創建項目 481
17.5.3 項目屬性 482
17.5.4 安裝編輯器 485
17.5.5 File System編輯器 485
17.5.6 File Types編輯器 488
17.5.7 Launch Condition
編輯器 489
17.5.8 User Interface編輯器 490
17.6 生成項目 493
17.7 安裝 493
17.7.1 Welcome 494
17.7.2 Read Me 494
17.7.3 License Agreement 495
17.7.4 Optional Files 495
17.7.5 選擇安裝文件夾 496
17.7.6 確認安裝 496
17.7.7 進度 497
17.7.8 完成安裝 497
17.7.9 運行應用程序 498
17.7.10 卸載 498
17.8 小結 498
17.9 練習 499
17.10 本章要點 499
第Ⅲ部分 Web 編 程
第18章 ASP.NET Web編程 503
18.1 Web應用程序概述 503
18.2 ASP.NET運行庫 504
18.3 創建簡單的Web頁麵 504
18.4 服務器控件 512
18.5 ASP.NET迴送 513
18.6 ASP.NET AJAX迴送 518
18.7 輸入的有效性驗證 521
18.8 狀態管理 525
18.8.1 客戶端的狀態管理 525
18.8.2 服務器端的狀態管理 527
18.9 樣式 530
18.10 母版頁 535
18.11 站點導航 540
18.12 身份驗證和授權 542
18.12.1 身份驗證的配置 543
18.12.2 使用安全控件 546
18.13 讀寫SQL Server數據庫 549
18.14 小結 556
18.15 練習 556
18.16 本章要點 556
第19章 Web服務 557
19.1 使用Web服務的場閤 557
19.1.1 賓館旅行社代理
應用程序 558
19.1.2 圖書發布應用程序 558
19.1.3 客戶應用程序的類型 558
19.2 應用程序的體係結構 558
19.3 Web服務的體係結構 559
19.3.1 調用方法和WSDL 559
19.3.2 調用方法 560
19.3.3 WS-I規範 561
19.4 Web服務和.NET
Framework 561
19.4.1 創建Web服務 562
19.4.2 客戶程序 563
19.5 創建簡單的ASP.NET Web
服務 564
19.6 測試Web服務 567
19.7 實現Windows客戶程序 568
19.8 異步調用服務 572
19.9 實現ASP.NET客戶程序 575
19.10 傳送數據 576
19.11 小結 579
19.12 練習 580
19.13 本章要點 580
第20章 部署Web應用程序 581
20.1 Internet Information
Services 581
20.2 IIS配置 582
20.3 復製Web站點 584
20.4 發布Web站點 587
20.5 Windows安裝程序 589
20.5.1 創建安裝程序 589
20.5.2 安裝Web應用程序 591
20.6 小結 592
20.7 練習 593
20.8 本章要點 593
第Ⅳ部分 數 據 訪 問
第21章 文件係統數據 597
21.1 流 597
21.2 用於輸入和輸齣的類 598
21.2.1 File類和Directory類 599
21.2.2 FileInfo類 600
21.2.3 DirectoryInfo類 602
21.2.4 路徑名和相對路徑 602
21.2.5 FileStream對象 602
21.2.6 StreamWriter對象 608
21.2.7 StreamReader對象 611
21.2.8 讀寫壓縮文件 617
21.3 序列化對象 620
21.4 監控文件係統 625
21.5 小結 631
21.6 練習 632
21.7 本章要點 632
第22章 XML 633
22.1 XML文檔 634
22.1.1 XML元素 634
22.1.2 特性 635
22.1.3 XML聲明 635
22.1.4 XML文檔的結構 636
22.1.5 XML名稱空間 636
22.1.6 格式良好並有效的
XML 637
22.1.7 驗證XML文檔 638
22.2 在應用程序中使用XML 641
22.2.1 XML文檔對象模型 641
22.2.2 選擇節點 650
22.2.3 XPath 651
22.3 小結 654
22.4 練習 655
22.5 本章要點 655
第23章 LINQ簡介 657
23.1 第一個LINQ查詢 658
23.1.1 用var關鍵字聲明
結果變量 659
23.1.2 指定數據源:from
子句 660
23.1.3 指定條件:where子句 660
23.1.4 指定元素:select子句 660
23.1.5 完成:使用foreach
循環 661
23.1.6 延遲執行的查詢 661
23.2 使用LINQ方法語法 661
23.2.1 LINQ擴展方法 661
23.2.2 查詢語法和方法語法 662
23.3 排序查詢結果 663
23.4 orderby子句 665
23.5 用方法語法排序 665
23.6 查詢大型數據集 667
23.7 聚閤運算符 669
23.8 查詢復雜的對象 672
23.9 投影:在查詢中創建新
對象 676
23.10 投影:方法語法 678
23.11 單值選擇查詢 678
23.12 Any和All 679
23.13 多級排序 681
23.14 多級排序方法語法:
ThenBy 683
23.15 組閤查詢 683
23.16 Take和Skip 685
23.17 First和FirstOrDefault 687
23.18 集運算符 688
23.19 Join查詢 691
23.20 小結 693
23.21 練習 693
23.22 本章要點 693
第24章 應用LINQ 695
24.1 LINQ的變體 695
24.2 給數據庫使用LINQ 696
24.3 安裝SQL Server和
Northwind示例數據 696
24.3.1 安裝SQL Server
Express 2008 697
24.3.2 安裝Northwind示例
數據庫 697
24.4 第一個LINQ數據庫查詢 697
24.5 瀏覽數據庫關係 701
24.6 使用LINQ to XML 703
24.7 LINQ to XML函數構造
方法 703
24.8 保存和加載XML文檔 707
24.8.1 從字符串中加載XML 710
24.8.2 已保存的XML文檔
內容 710
24.9 處理XML片段 710
24.10 從數據庫中生成XML 713
24.11 查詢XML文檔的方法 715
24.12 使用LINQ to XML查詢
成員 716
24.12.1 Elements() 717
24.12.2 Descendants() 717
24.12.3 Attributes() 719
24.13 小結 721
24.14 練習 721
24.15 本章要點 722
第Ⅴ部分 其 他 技 術
第25章 Windows Presentation
Foundation 725
25.1 WPF的概念 726
25.1.1 WPF給設計人員帶來
的好處 726
25.1.2 WPF給C#開發人員帶來
的好處 728
25.2 基本WPF應用程序的組成 729
25.3 WPF基礎 739
25.3.1 XAML語法 740
25.3.2 桌麵和Web應用程序 742
25.3.3 Application對象 742
25.3.4 控件基礎 743
25.3.5 控件的布局 751
25.3.6 控件的樣式 760
25.3.7 觸發器 764
25.3.8 動畫 765
25.3.9 靜態和動態資源 768
25.4 用WPF編程 773
25.4.1 WPF用戶控件 774
25.4.2 實現依賴屬性 774
25.5 小結 784
25.6 練習 785
25.7 本章要點 785
第26章 Windows Communication
Foundation 787
26.1 WCF的含義 788
26.2 WCF概念 788
26.2.1 WCF通信協議 789
26.2.2 地址、端點和綁定 789
26.2.3 閤同 791
26.2.4 消息模式 791
26.2.5 行為 792
26.2.6 駐留 792
26.3 WCF編程 792
26.3.1 WCF測試客戶程序 800
26.3.2 定義WCF服務閤同 802
26.3.3 自駐留的WCF服務 810
26.4 小結 816
26.5 練習 817
26.6 本章要點 817
第27章 Windows Workflow
Foundation 819
27.1 Hello World 819
27.2 工作流和活動 821
27.2.1 If活動 821
27.2.2 While活動 822
27.2.3 Sequence活動 822
27.3 變元和變量 823
27.4 定製活動 828
27.4.1 工作流擴展 830
27.4.2 活動的有效性驗證 835
27.4.3 活動設計器 836
27.5 小結 838
27.6 練習 838
27.7 本章要點 838
附錄A 習題答案 839
· · · · · · (
收起)